Solaris のシステム管理 (基本編)

署名付きパッケージの追加と削除 (作業マップ)

次の作業マップは、署名付きパッケージの追加および削除に関する作業を示したものです。

作業 

説明 

参照先 

証明書をインポートする 

pkgadm addcert コマンドを使って信頼される証明書をインポートする

信頼される証明書をパッケージキーストアにインポートする方法 (pkgadm addcert)

(省略可能) 1 つ以上の証明書の詳細情報を表示する 

pkgadm listcert コマンドを使って証明書の詳細情報を表示する

証明書の情報を表示する方法 (pkgadm listcert)

(省略可能) 証明書を削除する 

pkgadm removecert コマンドを使って証明書を削除する

証明書を削除する方法 (pkgadm removecert)

(省略可能) プロキシサーバーをセットアップする 

プロキシを備えたファイアウォールの背後にシステムが存在している場合、プロキシサーバーを指定する 

プロキシサーバーをセットアップする方法 (pkgadd)

署名付きパッケージを追加する 

ルート証明書がインポートされると、pkgadd コマンドを使って署名付きパッケージを追加できる

署名付きパッケージを追加する方法 (pkgadd)

(省略可能) 署名付きパッケージを削除する 

署名付きパッケージの削除方法は、署名なしパッケージの削除方法と同一である 

ソフトウェアパッケージを削除する方法 (pkgrm)

信頼される証明書をパッケージキーストアにインポートする方法 (pkgadm addcert)

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. Java キーストア内にルート CA 証明書が存在することを確認します。


    # keytool -storepass storepass -list -keystore certfile
    

    keytool

    非公開鍵とそれらに対応する公開鍵を認証するための X.509 証明書チェーンの Java キーストア (データベース) を管理する。また、信頼されるエンティティが発行した証明書も管理する。keytool コマンドの詳細については、keytool-Key and Certificate Management Toolを参照。

    -storepass storepass

    Java キーストアの完全性を維持するためのパスワードを指定する。 

    -list

    デフォルトで、証明書の MD5 フィンガープリントを出力する。 

    -keystore certfile

    Java キーストア永続ファイルの名前と場所を指定する。 

  3. Java キーストア内のルート CA 証明書を一時ファイルへエクスポートします。


    # keytool -export -storepass storepass -alias gtecybertrustca -keystore 
    gtecybertrustca -keystore /usr/j2se/jre/lib/security/cacerts -file filename
    

    -export

    信頼される証明書をエクスポートする。 

    -storepass storepass

    Java キーストアの完全性を維持するためのパスワードを指定する。 

    -alias gtecybertrustca

    信頼される証明書の別名を指定する。 

    -keystore certfile

    キーストアファイルの名前と場所を指定する。 

    -file filename

    エクスポートされた証明書を格納するファイルを指定する。 

  4. 信頼される証明書をパッケージキーストアにインポートします。


    # pkgadm addcert -t -f format certfile
    

    -t

    証明書が信頼される CA 証明書であることを示す。このオプションを指定すると、コマンド出力に証明書の詳細情報が含まれ、ユーザーはその情報の確認を求められる。 

    -f format

    証明書または非公開鍵の形式を指定する。インポートする証明書は、PEM (pem)、バイナリ DER (der) のいずれかの形式を使ってコード化されている必要がある。

    certfile

    証明書を含むファイルを指定する。 

    詳細については、pkgadm のマニュアルページを参照。

  5. 一時ファイルを削除します。

例 — 信頼される証明書をインポートする

次の例は、信頼される証明書をインポートする方法を示しています。この例では、keytool コマンドを使って、Java キーストアからパッケージキーストアへ Sun のルート CA 証明書をインポートしています。


# keytool -export -storepass changeit -alias gtecybertrustca -keystore 
gtecybertrustca -keystore /usr/j2se/jre/lib/security/cacerts -file 
/tmp/root.crt
Certificate stored in file </tmp/root.crt>
# pkgadm addcert -t -f der /tmp/root.crt
Enter Keystore Password: storepass
      Keystore Alias: GTE CyberTrust Root
         Common Name: GTE CyberTrust Root
    Certificate Type: Trusted Certificate
  Issuer Common Name: GTE CyberTrust Root
      Validity Dates:<Feb 23 23:01:00 1996 GMT>-<Feb 23 23:59:00 2006 GMT>
     MD5 Fingerprint: C4:D7:F0:B2:A3:C5:7D:61:67:F0:04:CD:43:D3:BA:58
    SHA1 Fingerprint: 90:DE:DE:9E:4C:4E:9F:6F:D8:86:17:57:9D:D3:91:BC...
Trusting certificate <GTE CyberTrust Root>
Type a Keystore protection Password.
Press ENTER for no protection password (not recommended): xxx
For Verification: Type a Keystore protection Password.
Press ENTER for no protection password (not recommended): xxx
Certificate(s) from </tmp/root.crt> are now trusted
# rm /tmp/root.crt

証明書の情報を表示する方法 (pkgadm listcert)

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. パッケージキーストアの内容を表示します。


    # pkgadm listcert
    

例 — 証明書の情報を表示する (pkgadm listcert)

次の例は、ローカルに格納されている証明書の詳細情報を表示する方法を示しています。


# pkgadm listcert -P pass:storepass
    Keystore Alias: GTE CyberTrust Root
       Common Name: GTE CyberTrust Root
  Certificate Type: Trusted Certificate
Issuer Common Name: GTE CyberTrust Root
    Validity Dates: <Feb 23 23:01:00 1996 GMT> - <Feb 23 23:59:00 2006 GMT>
   MD5 Fingerprint: C4:D7:F0:B2:A3:C5:7D:61:67:F0:04:CD:43:D3:BA:58
  SHA1 Fingerprint: 90:DE:DE:9E:4C:4E:9F:6F:D8:86:17:57:9D:D3:91:BC...

証明書を削除する方法 (pkgadm removecert)

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 信頼される証明書をパッケージキーストアから削除します。


    # pkgadm removecert -n "certfile"

    -ncertfile” オプションには、ユーザーの証明書と鍵のペアの別名、信頼される証明書の別名のいずれかを指定します。


    注 –

    証明書の別名を表示するには、pkgadm listcert コマンドを使用します。


例 — 証明書を削除する (pkgadm removecert)

次の例は、証明書を削除する方法を示しています。


# pkgadm listcert
Enter Keystore Password: storepass
      Keystore Alias: GTE CyberTrust Root
         Common Name: GTE CyberTrust Root
    Certificate Type: Trusted Certificate
  Issuer Common Name: GTE CyberTrust Root
      Validity Dates:<Feb 23 23:01:00 1996 GMT>-<Feb 23 23:59:00 2006 GMT>
     MD5 Fingerprint: C4:D7:F0:B2:A3:C5:7D:61:67:F0:04:CD:43:D3:BA:58
    SHA1 Fingerprint: 90:DE:DE:9E:4C:4E:9F:6F:D8:86:17:57:9D:D3:91:BC...
# pkgadm removecert -n "GTE CyberTrust Root"
Enter Keystore Password: storepass
Successfully removed Certificate(s) with alias <GTE CyberTrust Root>

プロキシサーバーをセットアップする方法 (pkgadd)

プロキシを備えたファイアウォールの背後にシステムが存在している場合、プロキシサーバーをセットアップしてからでないと、 pkgadd コマンドを使用して HTTP サーバーからパッケージを追加できません。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 次のいずれかの方法を使ってプロキシサーバーを指定します。

    1. 環境変数 http_proxyHTTPPROXYHTTPPROXYPORT のいずれかを使ってプロキシサーバーを指定します。

      たとえば、次のようになります。


      # setenv http_proxy http://mycache.domain:8080
      

      または、次のいずれかを指定します。


      # setenv HTTPPROXY mycache.domain
      # setenv HTTPPROXYPORT 8080
      
    2. pkgadd コマンド行でプロキシサーバーを指定します。

      たとえば、次のようになります。


      # pkgadd -x mycache.domain:8080 -d http://myserver.com/pkg SUNWpkg
      
    3. プロキシサーバーの情報を含む管理ファイルを作成します。

      たとえば、次のようになります。


      # cat /tmp/admin
      mail=
      instance=unique
      partial=ask
      runlevel=ask
      idepend=ask
      rdepend=ask
      space=ask
      setuid=ask
      conflict=ask
      action=ask
      networktimeout=60
      networkretries=3
      authentication=quit
      keystore=/var/sadm/security
      basedir=default
      proxy=mycache.domain:8080
      

      続いて、pkgadd -a コマンドでこの管理ファイルを指定します。たとえば、次のようになります。


      # pkgadd -a /tmp/admin -d http://myserver.com/pkg SUNWpkg
      

署名付きパッケージを追加する方法 (pkgadd)

次の手順では、Sun のルート CA 証明書がすでにインポートされているものと仮定しています。詳細については、信頼される証明書をパッケージキーストアにインポートする方法 (pkgadm addcert)を参照してください。

プロキシサーバーをセットアップする方法については、プロキシサーバーをセットアップする方法 (pkgadd)を参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 署名付きパッケージを追加します。


    # pkgadd -d /pathname/package-name
    

    -d device-name オプションには、パッケージのインストール元デバイスを指定します。デバイスとして指定できるのは、ディレクトリ、テープ、フロッピーディスク、リムーバブルディスクのいずれかです。また、pkgtrans コマンドによって作成されたデータストリームを、デバイスとして指定することもできます。

例 — 署名付きパッケージを追加する (pkgadd)

次の例は、ダウンロード済みの署名付きパッケージを追加する方法を示しています。


# # pkgadd -d /tmp/signed_pppd
The following packages are available:
  1  SUNWpppd     Solaris PPP Device Drivers
                  (sparc) 11.10.0,REV=2003.05.08.12.24

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Enter keystore password:
## Verifying signature for signer <User Cert 0>
.
.
.

次の例は、デバイス名として HTTP URL を指定して署名付きパッケージをインストールする方法を示しています。指定した URL は、ストリーム形式のパッケージを指している必要があります。


# pkgadd -d http://install/signed-video.pkg

## Downloading...
..............25%..............50%..............75%..............100%
## Download Complete
.
.
.