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

patchadd コマンドによる署名付きパッチの追加 (作業マップ)

作業 

説明 

参照先 

1. パッケージキーストアをセットアップする 

Sun のルート CA 証明書をパッケージキーストアにインポートする 

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

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

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

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

2. 署名付きパッチをダウンロードし、追加する 

署名付きパッチをダウンロードし、それを patchadd コマンドを使ってシステムに追加する際に、次のいずれかの方法を選択する

 

 

署名付き Solaris パッチのダウンロードと追加を手動で行う 

署名付き Solaris パッチのダウンロードと追加を手動で行う方法 (patchadd)

 

署名付き Solaris パッチのダウンロードと追加を自動で行う 

署名付き Solaris パッチのダウンロードと追加を自動で行う方法 (patchadd)

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

patchadd コマンドを使って署名付きパッチをシステムに追加するには、署名付きパッチ上の署名を検証できるように、Sun のルート CA 証明書を事前に追加しておく必要があります。この証明書は、Java キーストアからパッケージキーストアへインポートできます。

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

  2. Java キーストア内のルート 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>

    -export

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

    -storepass storepass

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

    -alias gtecybertrustca

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

    -keystore certfile

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

    -file filename

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

  3. 一時ファイル内のルート CA 証明書をパッケージキーストアにインポートします。

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


    # 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 ... 
         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...
    
    Are you sure you want to trust this certificate? yes
    Trusting certificate <GTE CyberTrust Root>
    Type a Keystore protection Password.
    Press ENTER for no protection password (not recommended): 
    For Verification: Type a Keystore protection Password.
    Press ENTER for no protection password (not recommended): 
    Certificate(s) from </tmp/root.crt> are now trusted

    -t

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

    -f format

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

    certfile

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

  4. 証明書の情報を表示します。

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


    # 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:65:A6:89:64
  5. 一時ファイルを削除します。

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


    # rm /tmp/root.crt
    

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

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

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

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

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

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


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

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


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

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


      # patchadd -x mycache.domain:8080 -M http://www.sun.com/solaris/patches/latest 101223-02
      102323-02
      

署名付き Solaris パッチのダウンロードと追加を手動で行う方法 (patchadd)

次の手順は、署名付き Solaris パッチのダウンロードと追加を別個に手動で行いたい場合に使用できます。

この手順では、パッケージキーストアのセットアップが完了しているものと仮定しています。

  1. (省略可能) パッチを適用するシステムにログインします。

    あるいは、パッチをダウンロードし、ftp コマンドを使用してそのパッチをターゲットのシステムにコピーすることもできます。

  2. Web ブラウザを開き、SunSolve Online のサイトに移動します。


    http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access
    
  3. 特定のパッチだけをダウンロードするか、パッチクラスタをダウンロードするかを決めます。次のいずれかの手順に従います。

    1. 「パッチ検索 (Find Patch)」検索フィールドにパッチ番号 (patch-ID) を入力し、「パッチ検索 (Find Path)」をクリックします。

      patch-ID を入力すると、最新バージョンのパッチがダウンロードされます。

      自由に使用できるパッチの場合、そのパッチの README が表示されます。自由に使用できないパッチの場合、ACCESS DENIED メッセージが表示されます。

      SPARC システムと x86 システムではパッチ番号が異なります。これについては、表示されるパッチの README に記載されています。使用しているシステムアーキテクチャに適合したパッチをインストールしてください。

    2. パッチを適用するシステムで実行している Solaris に基づいて、推奨されるパッチクラスタをクリックします。

  4. 「この署名付きパッチ (n bytes) をダウンロードする HTTPS FTP (Download Signed Patch HTTPS or FTP)」ボタンをクリックします。

    署名付きパッチ (またはパッチクラスタ) が正常にダウンロードされたら、Web ブラウザを閉じます。

  5. 必要に応じて、ダウンロードされたパッチパッケージが含まれているディレクトリに移動します。

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

  7. 署名付きパッチを追加します。

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


    # patchadd /tmp/114861-01.jar
    

署名付き Solaris パッチのダウンロードと追加を自動で行う方法 (patchadd)

次の手順は、署名付き Solaris パッチのダウンロードと追加を、自動的に一度で行いたい場合に使用できます。

この手順では、パッケージキーストアのセットアップが完了しているものと仮定しています。

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

  2. ダウンロードするパッチの HTTP URL を特定します。

    1. Web ブラウザを開き、SunSolve Online のサイトに移動します。


      http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access
      
    2. ダウンロードするパッチ番号を入力します。

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


      114861-01
    3. パッチページの最上部の HTTPS リンクの上にマウスを置きます。

      パッチの URL が、画面の下部にあるブラウザステータス行に表示されます。

  3. 署名付きのパッチを SunSolve Online のサイトからダウンロードし、システムに追加します。

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


    # patchadd "http://sunsolve.central.sun.com/cgi/patchDownload.pl?target=
    114684&method=hs"
    .
    .
    .
    Downloading patch from ...
    + dwnld_file http://sunsolve.central.sun.com/cgi/patchDownload.pl?target=
    114684&method=hs /tmp/patchadd-dwnld /var/sadm/security  console patchadd
    ...........20%...........40%...........60%...........80%...........100%
    ## Downloading...
    ## Download Complete
    .
    .
    .
    Enter keystore password: xxx
    .
    .
    .