Go to main content
Oracle® Solaris 11.3 でのネットワークのセキュリティー保護

印刷ビューの終了

更新: 2016 年 11 月
 
 

CA の署名付き証明書で IKEv1 を構成する方法

始める前に

Network IPsec Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

リモートで管理する場合は、セキュアなリモートログイン手順について、使用例 27およびOracle Solaris 11.3 での Secure Shell アクセスの管理 の Secure Shell を使用して ZFS をリモートで管理する方法を参照してください。

  1. ikecert certlocal -kc コマンドを使用して証明書署名要求 (CSR) を作成します。

    コマンドの引数については、自己署名付き公開鍵証明書により IKEv1 を構成する方法Step 1 を参照してください。

    # ikecert certlocal -kc -m keysize -t keytype \
    -D dname -A altname
    1. たとえば、次のコマンドは host2 システムに CSR を作成します。
      # ikecert certlocal -kc -m 2048 -t rsa-sha384 \
      > -D "C=US, O=Example2Co\, Inc., OU=US-Example2m, CN=Example2m" \
      > -A "DN=C=US, O=Example2Co\, Inc., OU=US-Example2m"
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/2.
      Enabling external key providers - done.
      Certificate Request: 
        Proceeding with the signing operation.
        Certificate request generated successfully (.../publickeys/0)
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
      ...
      lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
      -----END CERTIFICATE REQUEST-----
    2. 次のコマンドは host1 システムに CSR を作成します。
      # ikecert certlocal -kc -m 2048 -t rsa-sha384 \
      > -D "C=JA, O=Example1Co\, Inc., OU=JA-Example1x, CN=Example1x" \
      > -A "DN=C=JA, O=Example1Co\, Inc., OU=JA-Example1x"
      Creating software private keys.
      ...
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
      ...
      8qlqdjaStLGfhDOO
      -----END CERTIFICATE REQUEST-----
  2. CA に CSR を送信します。

    CA から CSR の送信方法を指示されることがあります。ほとんどの機関は、Web サイトに送信フォームを掲載しています。フォームの記入に当たっては、その送信が正当なものであることを証明する必要があります。通常は、CSR をフォームに貼り付けます。要求が組織によって確認されている場合は、組織から署名付き証明書が発行されます。詳細は、IKE での公開鍵証明書の使用を参照してください。

  3. 各証明書をシステムに追加します。

    ikecert certdb -a コマンドの –a オプションは、張り付けられたオブジェクトをシステムの適切な証明書データベースに追加します。 詳細については、IKE と公開鍵証明書を参照してください。

    1. 管理者になります。

      詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。リモートで管理する場合は、セキュアなリモートログイン手順について、使用例 27およびOracle Solaris 11.3 での Secure Shell アクセスの管理 の Secure Shell を使用して ZFS をリモートで管理する方法を参照してください。

    2. 公開鍵と CA から受け取った証明書を追加します。
      # ikecert certdb -a < /tmp/PKIcert.eml
    3. CA の公開証明書を追加します。

      中間証明書の追加が必要な場合もあります。

      # ikecert certdb -a < /tmp/PKIca.eml
    4. CA から証明書失効リストが送られている場合は、その CRL を certrldb データベースに追加します。
      # ikecert certrldb -a
      Press the Return key
      Paste the CRL
      -----BEGIN CRL-----
      ...
      -----END CRL----
      Press the Return key
      Press Control-D
  4. /etc/inet/ike/config ファイル内の cert_root キーワードを使用して、証明書を発行した CA を識別します。

    CA の証明書の識別名 (DN) を使用します。

    1. たとえば、host2 システムの ike/config ファイルは次のようになります。
      # Trusted root cert
      # This certificate is from Example CA
      # This is the X.509 distinguished name for the CA's cert 
      
      cert_root "C=US, O=ExampleCA\, Inc., OU=CA-Example, CN=Example CA"
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
       { auth_method rsa_sig oakley_group 14 auth_alg sha384 encr_alg aes}
      p2_pfs 14
      
      {
       label "US-host2 to JA-host1 - Example CA"
       local_id_type dn
       local_id  "C=US, O=Example2Co, OU=US-Example2m, CN=Example2m"
       remote_id "C=JA, O=Example1Co, OU=JA-Example1x, CN=Example1x"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha256 encr_alg aes}
      }

      注 -  auth_method パラメータのすべての引数は同じ行になければなりません。
    2. host1 システム上で、同様なファイルを作成します。

        特に、host1 ike/config ファイルは次を行う必要があります。

      • cert_root には同じ値を使用する。

      • ローカルパラメータには host1 値を使用する。

      • リモートパラメータには host2 値を使用する。

      • labelキーワードには一意の値を作成する。この値は、リモートシステムの label 値とは異なる値でなくてはなりません。

      ...
      cert_root "C=US, O=ExampleCA\, Inc., OU=CA-Example, CN=Example CA"
      ...
      {
       label "JA-host1 to US-host2 - Example CA"
       local_id_type dn
       local_id   "C=JA, O=Example1Co, OU=JA-Example1x, CN=Example1x"
       remote_id  "C=US, O=Example2Co, OU=US-Example2m, CN=Example2m"
       
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      ...
  5. 失効した証明書の処理について、IKEv1 ポリシーを設定します。

    適切なオプションを選択します。

    • OCSP 利用不可

      公開鍵証明書には OCSP サーバーに到達するための URI が記述されているものの、使用しているシステムがインターネットに接続できない場合は、キーワード ignore_ocspike/config ファイルに追加します。

      # Trusted root cert
      ...
      cert_root "C=US, O=ExampleCA\, Inc., OU=CA-Example,...
      ignore_ocsp
      ...

      ignore_ocsp キーワードは、証明書が有効であると仮定するように IKEv1 に伝えます。

    • CRL 利用不可

      CA が CRL の信頼できるソースを提供しない場合、または使用しているシステムがインターネットに接続して CRL を取得できない場合は、キーワード ignore_crlsike/config ファイルに追加します。

      # Trusted root cert
      ...
      cert_root "C=US, O=ExampleCA\, Inc., OU=CA-Example,...
      ignore_crls
      ...
    • CRL または OCSP の URI を利用可能

      CA が失効した証明書の中央配布ポイントを提供している場合は、ike/config ファイルを変更して URI を使用できます。

      例は、IKEv1 で失効した証明書を処理する方法を参照してください。

使用例 41  IKEv1 の構成時に rsa_encrypt を使用する

    ike/config ファイルで auth_method rsa_encrypt を使用する場合は、ピアの証明書を publickeys データベースに追加する必要があります。

  1. その証明書をリモートシステムの管理者に送信します。

    証明書は、電子メールのメッセージに貼り付けることもできます。

    たとえば、host2 の管理者が次のメッセージを送信します。

    To: admin@host1.ja.example.com
    From: admin@host2.us.example.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII...
    ----END X509 CERTIFICATE-----

    host1 の管理者が次のメッセージを送信します。

    To: admin@host2.us.example.com
    From: admin@host1.ja.example.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII
    ...
    -----END X509 CERTIFICATE-----
  2. システムごとに、電子メールで送信された証明書をローカルの publickeys データベースに追加します。

    # ikecert certdb -a < /tmp/saved.cert.eml

RSA 暗号化の認証方法は、IKE 内の識別子を盗聴者から隠します。rsa_encrypt メソッドはピアの識別子を隠すため、IKEv1 はピアの証明書を取得できません。結果として、rsa_encrypt メソッドでは、IKEv1 ピアが互いの公開鍵を知っておく必要があります。

    そのため、/etc/inet/ike/config ファイルの auth_methodrsa_encrypt を指定する場合には、ピアの証明書を publickeys データベースに追加する必要があります。この結果、publickeys データベースには、通信するシステムペアごとに 3 つ以上の証明書が存在することになります。

  • ユーザーの公開鍵証明書

  • CA の証明書チェーン

  • ピアの公開鍵証明書

トラブルシューティング – IKEv1 ペイロードには 3 つ以上の証明書が含まれており、rsa_encrypt で暗号化するには大きくなりすぎることがあります。「authorization failed (承認に失敗しました)」や「malformed payload (ペイロードが不正です)」などのエラーは、rsa_encrypt メソッドがペイロード全体を暗号化できないことを示します。証明書を 2 つしか必要としない rsa_sig などのメソッドを使用して、ペイロードのサイズを減らします。

次のステップ

IPsec ポリシーの設定がまだ完了していない場合、IPsec の手順に戻って IPsec ポリシーを有効にするかリフレッシュしてください。VPN を保護する IPsec ポリシーの例については、IPsec による VPN の保護を参照してください。IPsec ポリシーのその他の例については、IPsec によって 2 つのサーバー間でネットワークトラフィックをセキュリティー保護する方法を参照してください。