Sun Java System Web Server 7.0 Update 3 管理ガイド

証明書の管理

証明書の要求

証明書は、個人、企業、またはその他の実体の名前を指定するデジタルデータで構成されており、証明書に含まれている公開鍵がその個人に属していることを証明します。SSL 対応のサーバーは証明書を持つ必要があり、クライアントはオプションで証明書を持つことができます。

証明書は、認証局つまり CA によって発行され、デジタル署名されます。CA は、インターネット経由で証明書を販売する企業の場合も、企業でイントラネットやエクストラネットの証明書の発行を担当する部門の場合もあります。他人の身元の証明者として十分に信頼できる CA はどれであるかを決定します。

証明書の要求を作成し、それを認証局 (CA) に提出できます。会社に独自の内部 CA がある場合には、そこから発行される証明書を要求します。商用 CA からの証明書購入を予定している場合には、CA を選定し、CA が必要とする情報の特定のフォーマットを入手してください。サーバーの自己署名付き証明書を作成することもできます。自己署名付き証明書は、インターネットとの接点を持つ配備には適しませんが、開発やテストには非常に役立ちます。なぜなら、CA を通さずにテストサーバーを設定できるからです。

前述したように、証明書には実体 (この場合は Web サーバー) の公開鍵が含まれています。公開鍵は、ある特定のアルゴリズム (このアルゴリズムのタイプも証明書内に復号化される) に基づいて生成されます。次の節では、Web Server でキー用にサポートされているアルゴリズムタイプの背景について説明します。

Procedure証明書を要求する

  1. 「サーバー証明書」タブ>「要求」ボタンをクリックします。

  2. 構成を選択します

    証明書をインストールする必要がある構成を、構成のリストから選択します。

  3. トークンを選択します

    キーを含むトークン (暗号化デバイス) を選択します。これは、サーバーにより維持されるローカルキーデータベース内にキーが格納されている場合に実行します。スマートカードなど、外部のデバイスやエンジンにキーが格納されている場合には、その外部トークンの名前をドロップダウンリストボックスから選択します。選択されたトークンのパスワードを入力します。

  4. 詳細を入力します

    要求処理を開始する前に、CA が必要とする情報が明確になっているか確認してください。サーバー証明書を民間の CA、内部 CA のいずれに要求する場合でも、次の情報を提供する必要があります。

    • サーバー名: www.sun.com など、DNS 検索で使用される完全修飾ホスト名でなければいけません。これは、サイトへの接続時にブラウザが使用する URL に含まれるホスト名になります。これら 2 つの名前が一致しない場合、証明書の名前とサイトの名前が一致しないことがクライアントに通知され、証明書の信頼性が疑われることになります。

      内部 CA が発行する証明書を要求する場合には、このフィールドにワイルドカードや正規表現も入力できます。ほとんどのベンダーは、共通名にワイルドカードや正規表現が入力された証明書の要求を承認しません。

    • 組織: 企業、教育機関、提携先などの正式な法律上の名前です。CA の多くは、ここに入力された情報を、営業許可証の複写などの法的文書で確認することを要求します。

    • 組織単位: 省略可能なフィールドであり、企業内の組織を記述します。また、Inc.Corp. を省略するなど、より非公式な企業名をここに記載することもできます。

    • 地域: 省略可能なフィールドであり、通常は組織の市区町村を記述します。

    • 都道府県: 省略可能なフィールドです。

    • 国名: 国名を表す 2 文字の略号 (ISO 形式) です。米国の国コードは US です。

    これらすべての情報が、識別名 (DN) と呼ばれる一連の属性と値のペアとして結合され、その DN が証明書のサブジェクトとなります。

  5. 証明書オプションを選択します

    キー情報の入力を求められます。キーの種類としては、RSA または ECC を選択できます。キーの種類が RSA の場合、キーサイズは 1024、2048、または 4098 になります。キーの種類が ECC の場合は曲線も選択する必要があります。新しい鍵ペアの生成には時間がかかることに注意してください。キーの長さが長いほど、ウィザードでキーを生成する時間も長くなります。


    注意 – 注意 –

    キーの種類は、あとで署名要求を送る CA がサポートしている種類を必ず選択するようにしてください。


  6. 証明書タイプを選択します

    証明書の認証局 (CSA) を選択します (自己署名付き、CA 署名付きのいずれか)。自己署名付き証明書を選択する場合、証明書に HTTP リスナーを関連付けることもできます。このアクションをあとで実行することもできます。

  7. 要求を生成します

    CA 署名付き証明書の場合、生成された証明書要求が ASCII 形式で利用可能になります。自己署名付き証明書の場合、証明書は直接インストールされます。タイプが自己署名付きの場合、セキュア要求を処理するためのニックネーム、有効期間 (月)、および HTTP リスナー名の値を入力します。

  8. 結果を表示します

    このページには、選択したオプションの概要が表示されます。要求の生成を完了させるには、「完了」をクリックします。


    注 –

    CLI の使用

    CLI 経由で証明書を要求するには、次のコマンドを実行します。


    wadm> create-cert-request --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --server-name=servername.org 
    --org=sun --country=ABC --state=DEF --locality=XYZ --token=internal

    CLI リファレンスの create-cert-request(1) を参照してください。


    注 –

    CLI を使用した自己署名付き証明書の作成については、「自己署名付き証明書の作成」を参照してください。


Solaris 暗号化フレームワークの構成

この節では、Web Server で使用する Solaris 暗号化の構成方法について説明します。

ProcedureSolaris 暗号化を構成する

  1. 次のコマンドを使用して、マシンから ./sunw ディレクトリを削除します。

    %rm -rf $HOME/.sunw

  2. 次のコマンドを使用して新しい PIN を設定します。

    % pktool setpin Enter new PIN:<ここに PIN を入力>

    Re-enter new PIN:<PIN を再入力>

  3. 次のコマンドを使用して、pkcs11_kernel.so および pkcs11_softtoken.so ファイル内の機構を無効にします。

    #cryptoadm disable provider=/usr/lib/security/$ISA/pkcs11_kernel.so mechanism=CKM_SSL3_PRE_MASTER_KEY_GEN,CKM_SSL3_MASTER_KEY_DERIVE,CKM_SSL3_KEY AND_MAC_DERIVE,CKM_SSL3_MASTER_KEY_DERIVE_DH,CKM_SSL3_MD5_MAC,CKM_SSL3_SHA1_MAC

    #cryptoadm disable provider=/usr/lib/security/$ISA/pkcs11_softtoken.so mechanism=CKM_SSL3_PRE_MASTER_KEY_GEN,CKM_SSL3_MASTER_KEY_DERIVE,CKM_SSL3_KEY AND_MAC_DERIVE,CKM_SSL3_MASTER_KEY_DERIVE_DH,CKM_SSL3_MD5_MAC,CKM_SSL3_SHA1_MAC


    注 –

    pkcs11_softtoken_extra.so ファイル内の機構を使用している場合は、これを必ず無効にしてください。


ProcedurePKCS#11 ライブラリファイルを登録する

  1. 次のコマンドを入力して、Solaris 暗号化フレームワークを config ディレクトリ内のネットワークセキュリティーサービス (NSS) に追加します。

    $ cd <install-dir>/<instance-dir>/lib/modutil -dbdir <install-dir>/<instance-dir>/config -nocertdb -add "scf" -libfile /usr/lib/libpkcs11.so -mechanisms RSA

  2. 次のコマンドを使用して、登録を検証します。

    $cd <install-dir>/<instance-dir>/lib/modutil -dbdir <install-dir>/<instance-dir>/config -nocertdb -list

    Listing of PKCS #11 Modules
    1. NSS Internal PKCS #11 Module
         slots: 2 slots attached
             status: loaded
    
              slot: NSS Internal Cryptographic Services
             token: NSS Generic Crypto Services
    
              slot: NSS User Private Key and Certificate Services
             token: NSS Certificate DB
    
       2. scf
             library name: /usr/lib/libpkcs11.so
              slots: 1 slot attached
             status: loaded
    
              slot: Sun Crypto Softtoken
             token: Sun Software PKCS#11 softtoken
    
       3. Root Certs
             library name: libnssckbi.so
              slots: There are no slots attached to this module
             status: Not loaded

    サーバー証明書の作成について詳しくは、「証明書の要求」を参照してください。

    証明書が NSS データベース内に存在する場合は、次の pk12util コマンドを使用して証明書をエクスポートまたはインポートできます。

    $pk12util -o server.pk12 -d . -n <server-cert>

    $pk12util -i server.pk12 -d . -h "Sun Software PKCS#11 softtoken"


    注 –

    デフォルトでは、certutil/pk12util はデータベース内で cert8.db および key3.db を検索します。Web Server のプレフィックスとして -P を追加します。これにより、代替名 https-instance-hostname-cert8.db および https-instance-hostname-key3.db が使用されます。


ProcedurePKCS#11 トークンを有効にしてバイパスする

  1. 「ホーム」ページから、「構成」タブをクリックします

  2. 「構成」ページで、PKCS11 を有効にする構成をクリックします。

  3. 「証明書」タブをクリックします。

  4. 「PKCS#11 トークン」サブタブをクリックします。

  5. 「一般設定」で、チェックボックスを選択して PKCS#11 を有効にして、「バイパスを許可」を選択します。

  6. 「保存」ボタンをクリックします。

    CLI リファレンスの set-pkcs11-prop(1) を参照してください。

CLI を使用した自己署名付き証明書の作成および SSL の有効化

インストールディレクトリから wadm を起動して、次の手順を実行します。

$wadm --user=admin
Please enter admin-user-password>enter the administration serverpassword

$wadm>list-tokens --config=test.sun.com

internal
Sun Software PKCS#11 softtoken

$wadm>create-selfsigned-cert --config=test.sun.com --server-name=test.sun.com --nickname=MyCert 
--token="Sun Software PKCS#11 softtoken"
Please enter token-pin>enter the password

CLI201 Command 'create-selfsigned-cert' ran successfully

$wadm>set-ssl-prop --config=test.sun.com --http-listener=http-listener-1 enabled=true 
server-cert-nickname="Sun Software PKCS#11 softtoken:MyCert"
CLI201 Command 'set-ssl-prop' ran successfully

$wadm>deploy-config test.sun.com
CLI201 Command 'deploy-config' ran success

ここで、管理サーバーを起動します。

$ cd <install-dir>/<instance-dir>/bin/startserv
Sun Java System Web Server 7.0 Update 3

Please enter the PIN for the "Sun Software PKCS#11 softtoken" token:enter the password
info: HTTP3072: http-listener-1: https://test.sun.com:2222 ready to accept requests
info: CORE3274: successful server startup

証明書のインストール

CA から証明書を取得したら、管理コンソールを使ってその証明書をある構成用としてインストールできます。

Procedure証明書をインストールする

  1. 「サーバー証明書」タブ>「インストール」ボタンをクリックします。

  2. 構成を選択します

    証明書をインストールする必要がある構成を、構成のリストから選択します。

  3. トークンを選択します

    キーを含むトークン (暗号化デバイス) を選択します。サーバーにより維持されるローカルキーデータベース内にキーが格納されている場合は、「Internal」を選択します。スマートカードなど、外部のデバイスやエンジンにキーが格納されている場合には、その外部トークンの名前をドロップダウンリストボックスから選択します。選択されたトークンのパスワードを入力します。

  4. 証明書のデータを入力します

    提供されたテキスト領域に、証明書のテキストをペーストします。テキストをコピーしてペーストするときは、必ず、開始と終了のハイフンを含む「Begin Certificate」および「End Certificate」というヘッダーを含めてください。「参照」ボタンをクリックし、.DER ファイルを手動で選択することもできます。

  5. 証明書の詳細を入力します

    証明書で使用されるニックネームを入力します。選択可能なリストから、セキュア要求を処理するための HTTP リスナーを選択します。自己署名付き証明書オプションを選択することもできます。

  6. 結果を表示します

    このページには、選択したオプションの概要が表示されます。インストール処理を完了させるには、「完了」をクリックします。


    注 –

    CLI の使用

    CLI 経由で証明書をインストールするには、次のコマンドを実行します。


    wadm> install-cert --user=admin --port=8989  --password-file=admin.pwd 
    --config=config1 --token=internal --cert-type=server --nickname=cert1 cert.req

    ここで、cert.req には証明書データが含まれています。

    CLI リファレンスの install-cert(1) を参照してください。


外部証明書の要求とインストール

ほかの認証局に要求して発行された証明書をインストールできます。CA のリストは業界内で入手できます。この節では、外部のサーバー証明書を要求およびインストールする方法について説明します。

「証明書を要求する」の節の記述に従って、手順 1 から 5 を実行します。指示に従って、外部証明書の要求を完了します。

  1. サーバー証明書の要求ウィザードで「CA 署名付き証明書」オプションを選択して、「次へ」ボタンをクリックします。

  2. 「確認」ページが表示されます。設定を確認して、「完了」ボタンをクリックします。

  3. ヘッダーを含む CSR (Certificate Signing Request) をコピーして、「閉じる」ボタンをクリックします。

  4. 認証局の Web サイトに移動し、手続きを完了して、認証局により署名された証明書を入手します。

  5. 証明書をローカルフォルダに保存するか、証明書を Web サイトからコピーします。

入手した証明書をインストールするには、「証明書をインストールする」の説明に従って、手順 1 から 3 を実行します。指示に従って、外部証明書のインストールを完了します。

  1. 「証明書データの入力」ページで、証明書をペーストするか、マシンに保存したファイルのパスを指定します。「次へ」ボタンをクリックします。

  2. 証明書のニックネームを入力して、ドロップダウンリストからリスナーを選択します。「次へ」ボタンをクリックします。

  3. 「確認」ページが表示されます。「完了」ボタンをクリックして、インストールを完了します。

トークン PIN の設定の詳細については、「トークンのパスワードを設定する」を参照してください。

証明書の更新

次の手順に従えば、既存の証明書を更新できます。

Procedure証明書を更新する

  1. 「サーバー証明書」タブ>「証明書名」>「更新」ボタンをクリックします。

  2. トークン情報を入力します。

    必要に応じてトークンのパスワードを入力します。それ以外の場合は、「次へ」をクリックして処理を続行します。

  3. 証明書の詳細を更新します。

    証明書の詳細を確認し、有効期間を月数で入力します。

  4. キー情報を更新します。

    キーの種類としては、RSA または ECC を選択できます。キーの種類が RSA の場合、キーサイズは 1024、2048、または 4098 になります。キーの種類が ECC の場合は曲線も選択する必要があります。新しい鍵ペアの生成には時間がかかることに注意してください。

  5. 概要を表示します。

    このページには、選択したオプションの概要が表示されます。更新処理を完了させるには、「完了」をクリックします。


    注 –

    管理サーバー証明書を更新したあとで、管理サーバーおよびノードを再起動する必要があります。


証明書の削除

構成を削除するには、次のタスクを実行します。

Procedure証明書を削除する

  1. 「サーバー証明書」タブをクリックします。

  2. 証明書を選択します

    証明書のリストから証明書名を選択します。

  3. 証明書を削除します

    選択した証明書を削除するには、「削除」ボタンをクリックします。


    注 –

    CLI の使用

    CLI 経由で証明書を削除するには、次のコマンドを実行します。


    wadm> delete-cert --user=admin --port=8989  --password-file=admin.pwd 
    --token=internal --config=config1 cert1

    CLI リファレンスの delete-cert(1) を参照してください。


管理サーバー証明書の更新

管理サーバー証明書を更新するには、renew-admin-certs CLI コマンドを実行します。このコマンドは、ニックネーム Admin-CA-Cert Admin-Server-Cert、および Admin-Client-Cert を含む管理サーバー証明書を更新する場合に使用します。このコマンドは、現在稼働している、更新後の証明書を使ってアクセス可能なノードの更新も行います。

このコマンドの実行後、新しい証明書が有効になるように、管理サーバーと各ノードを再起動することをお勧めします。証明書の更新中にオフラインになっていた (停止中であったか、ネットワークの問題でアクセス不能になっていた) ノードについては、登録し直す必要があります。管理サーバー証明書を更新するには、次のコマンドを実行します。


wadm> renew-admin-certs --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --validity=120

CLI リファレンスの renew-admin-certs(1) を参照してください。