ADC

証明書のインストール、リンク、および更新

証明書をインストールするには、「 証明書とキーのペアの追加または更新」を参照してください。

注:

NetScaler PEM、DER、および PFX (PKCS12) の証明書形式をサポートしています。

  • PEM には、.crt、.pem、または.cer 拡張子を付けることができます。
  • DER には.der という拡張子が付いています。
  • PFX には、.p12 または.pfx の拡張子を付けることができます。

通常、ファイル名拡張子は関係ありません。ファイルの内容は異なる方法でエンコードされ、それによって形式が決まり、それに応じて証明書が解析されます。

リンク証明書

多くのサーバー証明書は、複数の階層的な認証局 (CA) によって署名されています。つまり、証明書は次のようなチェーンを形成します。

証明書チェーン

中間 CA がプライマリとセカンダリの中間 CA 証明書に分割されることがあります。証明書は次のようなチェーンを形成します。

証明書チェーン 2

通常、クライアントマシンのローカル証明書ストアにはルート CA 証明書が含まれていますが、1 つ以上の中間 CA 証明書は含まれていません。ADC アプライアンスは、1 つ以上の中間 CA 証明書をクライアントに送信する必要があります。

注: アプライアンスはルート CA 証明書をクライアントに送信してはなりません。公開キー基盤 (PKI) の信頼関係モデルでは、ルート CA 証明書をアウトオブバンド方式でクライアントにインストールする必要があります。たとえば、証明書はオペレーティングシステムや Web ブラウザに含まれています。クライアントは、アプライアンスから送信されたルート CA 証明書を無視します。

標準的な Web ブラウザが信頼できる CA として認識しない中間 CA が、サーバ証明書を発行することがあります。この場合、1 つ以上の CA 証明書をサーバ独自の証明書とともにクライアントに送信する必要があります。そうしないと、サーバ証明書の認証に失敗するため、ブラウザは SSL セッションを終了します。

中間証明書

サーバ証明書と中間証明書を追加するには、次のセクションを参照してください。

  • 手動による証明書リンク
  • 証明書リンクの自動化
  • 証明書のチェーンを作成する

中間機関証明書をリンクする方法

手動による証明書リンク

注: この機能は、NetScaler FIPS プラットフォームおよびクラスターセットアップではサポートされていません。

個々の証明書を追加してリンクする代わりに、サーバ証明書と最大 9 個の中間証明書を 1 つのファイルにグループ化できるようになりました。証明書とキーのペアを追加するときに、ファイル名を指定できます。その前に、次の前提条件が満たされていることを確認してください。

  • ファイル内の証明書は次の順序になっています。
    • サーバー証明書 (ファイル内の最初の証明書であることが必要)
    • オプションで、サーバーキー
    • 中間証明書 1 (ic1)
    • 中間証明書 2 (ic2)
    • 中間証明書 3 (ic3)など 注:中間証明書ファイルは、中間証明書ごとに「<certificatebundlename>.pem_ic< n>」という名前で作成されます。n は 1 ~ 9 です。たとえば、bundle.pem_ic1 と指定します。 bundle は証明書セットの名前で、ic1 は証明書セット内の最初の中間証明書です。
  • [バンドル] オプションが選択されている。
  • このファイルには中間証明書が 9 つまで存在しません。

ファイルが解析され、サーバ証明書、中間証明書、およびサーバキー (存在する場合) が識別されます。まず、サーバ証明書とキーが追加されます。次に、中間証明書がファイルに追加された順序で追加され、それに応じてリンクされます。

次の条件のいずれかに当てはまる場合、エラーが報告されます。

  • アプライアンスには、中間証明書の 1 つの証明書ファイルがあります。
  • この鍵は、ファイル内のサーバ証明書の前に置かれます。
  • 中間証明書はサーバ証明書の前に置かれます。
  • 中間証明書は、作成時と同じ順序でファイル内に配置されません。
  • このファイルには証明書がありません。
  • 証明書が適切な PEM 形式ではありません。
  • ファイル内の中間証明書の数が 9 個を超えています。

CLI を使用して証明書セットを追加する

コマンドプロンプトで次のコマンドを入力して証明書セットを作成し、構成を確認します。

add ssl certKey <certkeyName> -cert <string> -key <string> -bundle (YES | NO)

show ssl

show ssl certlink
<!--NeedCopy-->

次の例では、証明書セット (bundle.pem) に次のファイルが含まれています。

bundle_ic1 にリンクされたサーバー証明書 (バンドル)

bundle_ic2 にリンクされた最初の中間証明書 (bundle_ic1)

bundle_ic3 にリンクされた 2 つ目の中間証明書 (bundle_ic2)

3 番目の中間証明書 (bundle_ic3)

add ssl certKey bundletest -cert bundle9.pem -key bundle9.pem -bundle yes

sh ssl certkey

1)      Name: ns-server-certificate
        Cert Path: ns-server.cert
        Key Path: ns-server.key
        Format: PEM
        Status: Valid,   Days to expiration:5733
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Server Certificate
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=US,ST=California,L=San Jose,O=Citrix ANG,OU=NS Internal,CN=default OULLFT
        Validity
                Not Before: Apr 21 15:56:16 2016 GMT
                Not After : Mar  3 06:30:56 2032 GMT
        Subject:  C=US,ST=California,L=San Jose,O=Citrix ANG,OU=NS Internal,CN=default OULLFT
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

2)      Name: servercert
        Cert Path: complete/server/server_rsa_1024.pem
        Key Path: complete/server/server_rsa_1024.ky
        Format: PEM
        Status: Valid,   Days to expiration:7150
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Server Certificate
        Version: 3
        Serial Number: 1F
        Signature Algorithm: sha1WithRSAEncryption
        Issuer:  C=IN,ST=KAR,O=Citrix R&D Pvt Ltd,CN=Citrix
        Validity
                Not Before: Sep  2 09:54:07 2008 GMT
                Not After : Jan 19 09:54:07 2036 GMT
        Subject:  C=IN,ST=KAR,O=Citrix Pvt Ltd,CN=Citrix
        Public Key Algorithm: rsaEncryption
        Public Key size: 1024

3)      Name: bundletest
        Cert Path: bundle9.pem
        Key Path: bundle9.pem
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Server Certificate
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA9
        Validity
                Not Before: Nov 28 06:43:11 2014 GMT
                Not After : Nov 25 06:43:11 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=Server9
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

4)      Name: bundletest_ic1
        Cert Path: bundle9.pem_ic1
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA8
        Validity
                Not Before: Nov 28 06:42:56 2014 GMT
                Not After : Nov 25 06:42:56 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA9
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

5)      Name: bundletest_ic2
        Cert Path: bundle9.pem_ic2
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA7
        Validity
                Not Before: Nov 28 06:42:55 2014 GMT
                Not After : Nov 25 06:42:55 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA8
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

6)      Name: bundletest_ic3
        Cert Path: bundle9.pem_ic3
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA6
        Validity
                Not Before: Nov 28 06:42:53 2014 GMT
                Not After : Nov 25 06:42:53 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA7
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

7)      Name: bundletest_ic4
        Cert Path: bundle9.pem_ic4
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA5
        Validity
                Not Before: Nov 28 06:42:51 2014 GMT
                Not After : Nov 25 06:42:51 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA6
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

8)      Name: bundletest_ic5
        Cert Path: bundle9.pem_ic5
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA4
        Validity
                Not Before: Nov 28 06:42:50 2014 GMT
                Not After : Nov 25 06:42:50 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA5
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

9)      Name: bundletest_ic6
        Cert Path: bundle9.pem_ic6
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA3
        Validity
                Not Before: Nov 28 06:42:48 2014 GMT
                Not After : Nov 25 06:42:48 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA4
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

10)     Name: bundletest_ic7
        Cert Path: bundle9.pem_ic7
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA2
        Validity
                Not Before: Nov 28 06:42:46 2014 GMT
                Not After : Nov 25 06:42:46 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA3
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

11)     Name: bundletest_ic8
        Cert Path: bundle9.pem_ic8
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=ICA1
        Validity
                Not Before: Nov 28 06:42:45 2014 GMT
                Not After : Nov 25 06:42:45 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA2
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048

12)     Name: bundletest_ic9
        Cert Path: bundle9.pem_ic9
        Format: PEM
        Status: Valid,   Days to expiration:3078
        Certificate Expiry Monitor: ENABLED
        Expiry Notification period: 30 days
        Certificate Type: Intermediate CA
        Version: 3
        Serial Number: 01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer:  C=IN,ST=ka,O=sslteam,CN=RootCA4096
        Validity
                Not Before: Nov 28 06:42:43 2014 GMT
                Not After : Nov 25 06:42:43 2024 GMT
        Subject:  C=IN,ST=ka,O=sslteam,CN=ICA1
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048
Done

sh ssl certlink

1)      Cert Name: bundletest    CA Cert Name: bundletest_ic1
2)      Cert Name: bundletest_ic1        CA Cert Name: bundletest_ic2
3)      Cert Name: bundletest_ic2        CA Cert Name: bundletest_ic3
4)      Cert Name: bundletest_ic3        CA Cert Name: bundletest_ic4
5)      Cert Name: bundletest_ic4        CA Cert Name: bundletest_ic5
6)      Cert Name: bundletest_ic5        CA Cert Name: bundletest_ic6
7)      Cert Name: bundletest_ic6        CA Cert Name: bundletest_ic7
8)      Cert Name: bundletest_ic7        CA Cert Name: bundletest_ic8
9)      Cert Name: bundletest_ic8        CA Cert Name: bundletest_ic9
Done
<!--NeedCopy-->

GUI を使用して証明書セットを追加する

  1. [ トラフィック管理 ] > [ SSL ] > [ 証明書 ] > [ CA 証明書] に移動します。
  2. 詳細ペインで、[ インストール] をクリックします。
  3. [ 証明書のインストール ] ダイアログボックスで、証明書やキーファイル名などの詳細を入力し、[ 証明書バンドル] を選択します。
  4. [ インストール] をクリックし、[ 閉じる] をクリックします。

証明書リンクの自動化

注: この機能は、リリース 13.0 ビルド 47.x から利用できます。

ルート証明書に至るまで、証明書をその発行者に手動でリンクする必要がなくなりました。中間 CA 証明書とルート証明書がアプライアンスに存在する場合は、エンドユーザ証明書の [ リンク (Link)] ボタンをクリックできます。

[証明書のリンク] ボタン

ポテンシャルチェーンが表示されます。

[ 証明書をリンク ] をクリックして、すべての証明書をリンクします。

証明書のチェーンを作成する

証明書のセット (1 つのファイル) を使用する代わりに、証明書のチェーンを作成できます。チェーンはサーバー証明書をその発行者 (中間 CA) にリンクします。この方法では、中間 CA 証明書ファイルが ADC アプライアンスにインストールされ、クライアントアプリケーションがチェーン内の証明書の 1 つを信頼する必要があります。たとえば、Cert-Intermediate-A を Cert-Intermediate-B にリンクします。ここで、Cert-Intermediate-B は、クライアントアプリケーションによって信頼される証明書である Cert-Intermediate-C にリンクされます。

注: アプライアンスは、クライアントに送信される証明書のチェーン内で最大 10 個の証明書(1 つのサーバ証明書と 9 つの CA 証明書)の送信をサポートします。

CLI を使用して証明書チェーンを作成する

コマンドプロンプトで次のコマンドを入力して証明書チェーンを作成し、構成を確認します。(チェーン内の新しいリンクごとに 1 つ目のコマンドを繰り返します)。

link ssl certkey <certKeyName> <linkCertKeyName>
show ssl certlink
<!--NeedCopy-->

例:

link ssl certkey siteAcertkey CAcertkey
Done

show ssl certlink

linked certificate:
       1) Cert Name: siteAcertkey CA Cert Name: CAcertkey
Done
<!--NeedCopy-->

GUI を使用して証明書チェーンを作成する

  1. [ トラフィック管理 ] > [ SSL ] > [ 証明書] に移動します。
  2. サーバー証明書を選択し、[ アクション ]リストで[ リンク]を選択し、CA 証明書名を指定します。

SSL 証明書バンドルのサポート

注:

この機能は、リリース 13.1 ビルド 12.x から利用できます。

証明書バンドルの現在の設計には、次のような欠点があります。

  • 証明書バンドルを追加すると、設定に複数のコマンドが追加されます。したがって、2 つのバンドルが共通の中間証明書を共有している場合は、別の証明書バンドルを追加することはできません。
  • 証明書バンドルの削除は手動のプロセスです。ファイルは特定の順序で手動で削除する必要があります。
  • 証明書バンドルの更新はサポートされていません。
  • クラスタはサポートされていません。

証明書バンドルの新しい設計により、これらの問題がすべて解決されます。新しいエンティティは証明書バンドルファイルで動作します。したがって、中間証明書ごとにファイルを作成する必要はありません。この新しいエンティティを使用すると、削除も簡単です。

2 つの証明書バンドルで、中間証明書チェーンの一部を共有できます。証明書バンドルの一部でもある同じサーバ証明書とキーを使用して、証明書とキーのペアを追加することもできます。

次の例では、次のようになります。

  1. 証明書バンドル bundle1.pem には、サーバ証明書 (S1) と中間証明書 (IC1 および IC2) が含まれています。
  2. サーバー証明書は server_cert.pem (S1) です。
  3. 中間証明書は ic1.pem (IC1) と ic2.pem (IC2) です。

S1、IC1、IC2 を含む証明書バンドルを追加できます。

add ssl certkeybundle b1 -bundlefile bundle1.pem

S1 と IC1 を使用して証明書とキーのペアを追加することもできます。

add ssl certkey server-cert -cert server_cert.pem

add ssl certkey ic1 -cert ic1.pem

重要:

  • 次の順序が満たされない場合、バンドルの作成は失敗します。
    • サーバー証明書 (SC) はバンドルファイルの先頭に配置する必要があります。
    • IC[1-9]は中間証明書です。IC[i]IC[i+1]によって発行されます。証明書は順番に配置し、すべての中間証明書がバンドル内に存在する必要があります。
  • 証明書は PEM 形式のみである必要があります。
  • サーバー証明書キー (SCK) はバンドルの任意の場所に配置できます。
  • 最大 9 個の中間証明書がサポートされます。

CLI を使用して証明書バンドルを追加するには

コマンドプロンプトで入力します:

add ssl certKeyBundle <bundle_name> -bundlefile <bundle_file_name> -passplain <>

例:

add ssl certkeyBundle cert_bundle -bundlefile bundle_4096.pem

GUI を使用して証明書バンドルを追加するには

  1. [ トラフィック管理] > [SSL] > [証明書キーバンドル] に移動します。
  2. [Install]をクリックします。
  3. バンドルの名前を指定し、アプライアンスまたはローカルコンピュータ上のバンドルの場所を参照して、ファイルを選択します。
  4. [Create] をクリックします。

CLI を使用して証明書バンドルを更新するには

注:

更新コマンドは、リリース 13.1 ビルド 52.x 以降で使用できます。

コマンドプロンプトで入力します:

update ssl certKeyBundle [-bundlefile <input_filename>]

例:

update ssl certKeyBundle cert_bundle -bundlefile bundle_4096_updated.pem

GUI を使用して証明書バンドルを更新するには

  1. [ トラフィック管理] > [SSL] > [証明書キーバンドル] に移動します。
  2. バンドルを選択し、「 更新」をクリックします。
  3. アプライアンスまたはローカルコンピュータ上のバンドルの場所を参照し、ファイルを選択します。
  4. [OK] をクリックします。

CLI を使用して証明書バンドルを削除するには

コマンドプロンプトで入力します:

rm ssl certKeyBundle <bundle_name>

例:

rm ssl certkeybundle cert_bundle

GUI を使用して証明書バンドルを削除するには

  1. [ トラフィック管理] > [SSL] > [証明書キーバンドル] に移動します。
  2. バンドルを選択し、「 削除」をクリックします。
  3. 確認ダイアログボックスで、「 はい」をクリックします。

証明書バンドルを SSL 仮想サーバーにバインドするには

コマンドプロンプトで入力します:

bind ssl vserver <vip-name> -certkeybundleName <certkeybundle_name> [ -SNICertkeybundle]

例:

bind ssl vserver v_server -certkeyBundleName cert_bundle

show ssl certkeyBundle cert_bundle

1) Name: cert_bundle
        Bundle path: bundle_4096.pem
        Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 83
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=4096.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=ia24096.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:17:57 2021 GMT
                        Not After : Jul 13 10:17:57 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 4096
                SAN ENTRIES: None


        CA Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 82
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=ia24096.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=ia14098.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:15:37 2021 GMT
                        Not After : Jul 13 10:15:37 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 4096
                SAN ENTRIES: None

        CA Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 81
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=ia14098.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=root4098.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:13:20 2021 GMT
                        Not After : Jul 13 10:13:20 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 4096
                SAN ENTRIES: None

        CA Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 00
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=root4098.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=root4098.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:10:23 2021 GMT
                        Not After : Jul 13 10:10:23 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 2048
                SAN ENTRIES: None

1)      Vserver Name: v_server
<!--NeedCopy-->

証明書バンドルを SNI 証明書バンドルとして SSL 仮想サーバーにバインドするには

コマンドプロンプトで入力します:

bind ssl vserver <vip-name> -certkeybundleName b2 -SNICertkeybundle

例:

bind ssl vserver v_server -certkeyBundleName cert_bundle -sniCertkeybundle

sh ssl certkeybundle cert_bundle

1) Name: cert_bundle
        Bundle path: bundle_4096.pem
        Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 83
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=4096.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=ia24096.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:17:57 2021 GMT
                        Not After : Jul 13 10:17:57 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 4096
                SAN ENTRIES: None


        CA Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 82
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=ia24096.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=ia14098.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:15:37 2021 GMT
                        Not After : Jul 13 10:15:37 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 4096
                SAN ENTRIES: None

        CA Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 81
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=ia14098.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=root4098.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:13:20 2021 GMT
                        Not After : Jul 13 10:13:20 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 4096
                SAN ENTRIES: None

        CA Certificate:
                Status: Valid,   Days to expiration:278
                Serial Number: 00
                Subject:  C=IN,ST=KAR,O=CITRIX,CN=root4098.com
                Issuer:  C=IN,ST=KAR,O=CITRIX,CN=root4098.com
                Signature Algorithm: sha256WithRSAEncryption
                Validity
                        Not Before: Jul 13 10:10:23 2021 GMT
                        Not After : Jul 13 10:10:23 2022 GMT
                Public Key Algorithm: rsaEncryption
                Public Key size: 2048
                SAN ENTRIES: None

1)    Vserver Name: v_server
2)    Vserver Name: v_server
<!--NeedCopy-->

SSL 仮想サーバーから証明書バンドルをバインド解除するには

コマンドプロンプトで入力します:

unbind ssl vserver <vip-name> -certkeybundleName <certkeybundle_name> [ -SNICertkeybundle]

例:

unbind ssl vserver v_server -certkeybundleName cert_bundle

証明書バンドルバインドのユーザーシナリオ

次のシナリオでは、ADC アプライアンスが証明書バンドルに関連する要求を処理する方法を説明します。

シナリオ 1: 証明書とキーのペアと、同じサーバー証明書を含む証明書バンドルが同じ SSL 仮想サーバーにバインドされている

証明書とキーのペアと、同じサーバ証明書を含む証明書バンドルを同じ SSL 仮想サーバにバインドする場合、コマンドの順序によって最終的なバインドが決まります。

例:

  • 証明書バンドル bundle1.pem には、サーバ証明書 S1 と中間証明書 IC1 および IC2 が含まれています。
  • 証明書ファイル server_cert.pem には S1 が含まれています。

bundle1.pem と server_cert.pem はどちらも同じサーバー証明書 S1 を持っています。

次のコマンドを指定された順序で実行すると、SSL 仮想サーバーにバインドされているサーバー証明書が、その仮想サーバーにバインドされている証明書バンドルに置き換えられます。

  1. add ssl certkeybundle b1 -bundlefile bundle1.pem
  2. add ssl certkey server_cert -cert server_cert.pem
  3. bind ssl vserver v1 -certkeybundle b1
  4. bind ssl vserver v1 -cert server_cert

シナリオ 2:2 つの証明書バンドルに同じ中間証明書チェーンが含まれている

同じ中間証明書チェーンを持つ 2 つの証明書バンドルを追加できます。2 つのバンドルは独立したエンティティとして機能します。

次の例では、証明書バンドル 1 にはサーバ証明書 S1 と中間証明書 IC1 と IC2 がこの順序で含まれています。証明書バンドル-2 には、サーバ証明書 S2 と、中間証明書 IC1 および IC2 がこの順序で含まれています。

  • 証明書バンドル bundle1.pem (S1、IC1、IC2)
  • 証明書バンドル bundle2.pem (S2、IC1、IC2)

SSL ハンドシェイクプロセスで bundle-1 の S1 が選択されると、bundle-1 の中間証明書チェーンがクライアントに送信されます。

add ssl certkeybundle bundle-1 -bundlefile bundle1.pem add ssl certkeybundle bundle-2 -bundlefile bundle2.pem

シナリオ 2:2 つの証明書バンドルに、チェーン内に共通の中間証明書がいくつか含まれている

いくつかの一般的な中間証明書を含む 2 つの証明書バンドルをチェーンに追加できます。

次の例では、bundle-1 にはサーバ証明書 S1 と中間証明書 IC1 と IC2 が含まれています。証明書バンドル 2 には、サーバ証明書 S2 と中間証明書 IC1、IC2、および IC3 が含まれています。

証明書バンドル bundle1.pem (S1、IC1、IC2) 証明書バンドル 2.pem (S2、IC1、IC2、IC3)

add ssl certkeybundle bundle-1 -bundlefile bundle1.pem add ssl certkeybundle bundle-2 -bundlefile bundle2.pem

SSL ハンドシェイクプロセスで bundle-1 の S1 が選択されると、bundle-1 の中間証明書チェーンがクライアントに送信されます。つまり、 (S1→IC1→IC2) がクライアントに送信されます。IC3 は追加されません。

SSL ハンドシェイクプロセスで bundle-2 の S2 を選択すると、bundle-2 の中間証明書チェーンはクライアントにのみ送信されます。つまり、 (S1→IC1→IC2→IC3) がクライアントに送信されます。

証明書バンドルの制限事項

  • 証明書バンドル内の証明書のステータスの監視はサポートされていません。
  • 証明書バンドルは SSL 仮想サーバにのみバインドできます。
  • OCSP ホチキス止めはサポートされていません。

更新操作は、リリース13.1ビルド52.xの証明書バンドルでサポートされています。証明書バンドルを直接更新できるようになりました。以前は、最初にバンドルをバインド解除して削除し、次に証明書バンドルを追加してバインドする必要がありました。

既存のサーバー証明書を更新する

既存のサーバ証明書を手動で変更するには、次の手順を実行する必要があります。

  1. 仮想サーバから古い証明書のバインドを解除します。
  2. 証明書をアプライアンスから削除します。
  3. 新しい証明書をアプライアンスに追加します。
  4. 新しい証明書を仮想サーバにバインドします。

証明書とキーのペアを置き換える際のダウンタイムを短縮するために、既存の証明書を更新できます。証明書を別のドメインに発行された証明書に置き換える場合は、証明書を更新する前にドメインチェックを無効にする必要があります。

有効期限が切れる証明書に関する通知を受け取るには、有効期限モニターを有効にします。

構成済みの SSL 仮想サーバーまたはサービスから証明書を削除またはバインド解除すると、その仮想サーバーまたはサービスは非アクティブになります。新しい有効な証明書がバインドされると、アクティブになります。ダウンタイムを減らすために、更新機能を使用して、SSL 仮想サーバーまたは SSL サービスにバインドされている証明書とキーのペアを置き換えることができます。

NetScalerアプライアンスでSSL証明書を更新する方法の概要図。

Overview

既存の証明書を更新する方法

CLI を使用して既存の証明書とキーペアを更新する

コマンドプロンプトで次のコマンドを入力して、既存の証明書とキーのペアを更新し、構成を確認します。

update ssl certkey <certkeyName> -cert <string> -key <string>

show ssl certKey <certkeyName>
<!--NeedCopy-->

例:

update ssl certkey siteAcertkey -cert /nsconfig/ssl/cert.pem -key /nsconfig/ssl/pkey.pem

Done

show ssl certkey siteAcertkey

Name: siteAcertkey       Status: Valid
           Version: 3
           Serial Number: 02
           Signature Algorithm: md5WithRSAEncryption
           Issuer: /C=US/ST=CA/L=Santa Clara/O=siteA/OU=Tech
           Validity
                Not Before: Nov 11 14:58:18 2001 GMT
                Not After: Aug 7 14:58:18 2004 GMT
           Subject: /C=US/ST-CA/L=San Jose/O=CA/OU=Security
           Public Key Algorithm: rsaEncryption
           Public Key size: 2048
Done
<!--NeedCopy-->

GUI を使用して既存の証明書とキーのペアを更新する

  1. [ トラフィック管理 ] > [ SSL ] > [ 証明書 ] > [ サーバー証明書] に移動します。

  2. 更新する証明書を選択し、[ Update] をクリックします。 サーバー証明書を更新する

  3. [ 証明書とキーを更新] を選択します。 サーバー証明書とキーを更新する

  4. [ 証明書ファイル名] で、[ ファイルの選択 ] > [ ローカル] をクリックし、更新された.pfx ファイルまたは証明書 PEM ファイルを参照します。 ファイルへ移動

    • .pfx ファイルをアップロードすると、.pfx ファイルのパスワードを指定するよう求められます。

    • 証明書 pem ファイルをアップロードする場合は、証明書キーファイルもアップロードする必要があります。キーが暗号化されている場合は、暗号化パスワードを指定する必要があります。

  5. 新しい証明書の共通名が古い証明書と一致しない場合は、[ No Domain Check] を選択します。

  6. [OK] をクリックします。この証明書がバインドされているすべての SSL 仮想サーバーは自動的に更新されます。 「OK」をクリックします。

  7. 証明書を置き換えた後、証明書リンクを新しい中間証明書に更新しなければならない場合があります。リンクを壊さずに中間証明書を更新する方法の詳細については、「 リンクを壊さずに中間証明書を更新する」を参照してください。

    • 更新された証明書を右クリックし、[証明書リンク] をクリックして、中間証明書にリンクされているかどうかを確認します。

    • 証明書がリンクされていない場合は、更新された証明書を右クリックし、[ リンク ] をクリックして中間証明書にリンクします。リンクするオプションが表示されない場合は、まず、新しい中間証明書をアプライアンスの [ CA Certificates ] ノードにインストールする必要があります。

    中間証明書リンクの更新

既存の CA 証明書を更新する

既存の CA 証明書を更新する手順は、既存のサーバ証明書を更新する手順と同じです。唯一の違いは、CA 証明書の場合、キーは必要ないということです。

CA 証明書を更新する

ドメインチェックを無効にする

アプライアンスで SSL 証明書が置き換えられる場合、新しい証明書に記載されているドメイン名は、置き換えられる証明書のドメイン名と一致する必要があります。たとえば、abc.com に発行された証明書があり、def.com に発行された証明書で更新すると、証明書の更新は失敗します。

ただし、特定のドメインをホストしていたサーバーで新しいドメインをホストする場合は、証明書を更新する前にドメインチェックを無効にします。

CLI を使用して証明書のドメインチェックを無効にする

コマンドプロンプトで次のコマンドを入力して、ドメインチェックを無効にし、構成を確認します。

update ssl certKey <certkeyName> -noDomainCheck

show ssl certKey <certkeyName>
<!--NeedCopy-->

例:

update ssl certKey sv -noDomainCheck

Done

show ssl certkey sv

Name: sv
Cert Path: /nsconfig/ssl/complete/server/server_rsa_512.pem
Key Path: /nsconfig/ssl/complete/server/server_rsa_512.ky
Format: PEM
Status: Valid,   Days to expiration:9349
Certificate Expiry Monitor: DISABLED
Done
<!--NeedCopy-->

GUI を使用して証明書のドメインチェックを無効にする

  1. [ トラフィック管理] > [SSL] > [証明書] に移動し、証明書を選択して [ 更新] をクリックします。
  2. [ ドメインチェックなし] を選択します。

ADC アプライアンスのデフォルト証明書を、アプライアンスのホスト名と一致する信頼できる CA 証明書に置き換えます

次の手順では、デフォルトの証明書 (ns-server-certificate) が内部サービスにバインドされていることを前提としています。

  1. トラフィック管理 > SSL > SSL 証明書 > 証明書要求の作成に移動します
  2. [共通名] に、test.citrixadc.comと入力します。
  3. CSR を信頼できる認証局に送信します。
  4. 信頼できる CA から証明書を受け取ったら、このファイルを/nsconfig/sslディレクトリにコピーします。
  5. [ トラフィック管理] > [SSL] > [証明書] > [サーバー証明書] に移動します。
  6. デフォルトのサーバ証明書 (ns-server-certificate) を選択し、[ Update] をクリックします。
  7. [ 証明書の更新 ] ダイアログボックスの [ 証明書ファイル名] で、署名後に CA から受け取った証明書を参照します。
  8. [ Key File Name ] フィールドで、デフォルトのプライベートキーファイル名 (ns-server.key) を指定します。
  9. [ ドメインチェックなし] を選択します。
  10. [OK] をクリックします。

有効期限モニターを有効にする

SSL 証明書は一定期間有効です。一般的な展開には、SSL トランザクションを処理する複数の仮想サーバーが含まれ、それらにバインドされた証明書は異なる時間に期限切れになる可能性があります。アプライアンスに設定された有効期限モニタは、設定された証明書の有効期限が切れると、アプライアンスの syslog および ns 監査ログにエントリを作成します。

証明書の期限切れに関する SNMP アラートを作成する場合は、別途設定する必要があります。

CLI を使用して証明書の有効期限モニターを有効にする

コマンドプロンプトで次のコマンドを入力して、証明書の有効期限モニターを有効にし、構成を確認します。

set ssl certKey <certkeyName> [-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod <positive_integer>]]

show ssl certKey <certkeyName>
<!--NeedCopy-->

例:

set ssl certKey sv -expiryMonitor ENABLED –notificationPeriod 60
Done
<!--NeedCopy-->

GUI を使用して証明書の有効期限モニターを有効にする

  1. [ トラフィック管理] > [SSL] > [証明書] に移動し、証明書を選択して [ 更新] をクリックします。
  2. [ 有効期限が切れたら通知する] を選択し、必要に応じて通知期間を指定します。

リンクを解除せずに中間証明書を更新する

既存のリンクを壊すことなく中間証明書を更新できます。置き換えられる証明書によって発行されたリンクされた証明書の AuthorityKeyIdentifier 拡張には、認証局証明書のシリアル番号 (‘authorityCertSerialNumber’) フィールドを含めないでください。「AuthorityKeyIdentifier」拡張にシリアル番号フィールドが含まれる場合、古い証明書と新しい証明書のシリアル番号が同じである必要があります。上記の条件が満たされれば、リンク内の証明書をいくつでも 1 つずつ更新できます。以前は、中間証明書が更新されるとリンクが壊れました。

たとえばCertACertBCertCCertDの 4 つの証明書があります 。 証明書CertACertBの発行者 、CertBCertCの発行者、などです。リンクを解除せずに中間証明書CertBCertB_newに置き換える場合は、次の条件を満たす必要があります。

次の両方の条件が満たされる場合、CertBの証明書シリアル番号はCertB_newの証明書シリアル番号と一致する必要があります。

  • AuthorityKeyIdentifier拡張子はCertCにあります。
  • この拡張機能にはシリアル番号フィールドが含まれます。

証明書内の共通名が変更された場合は、証明書の更新中にnodomaincheckを指定します。

前述の例では、CertDの「www.example.com」を「*.example.com」に変更するには、「ドメインチェックなし」パラメータを選択します。

CLI を使用して証明書を更新する

コマンドプロンプトで入力します:

update ssl certKey <certkeyName> -cert <string> [-password] -key <string>  [-noDomainCheck]
<!--NeedCopy-->

例:

update ssl certkey siteAcertkey -cert /nsconfig/ssl/cert.pem -key /nsconfig/ssl/pkey.pem -noDomainCheck
<!--NeedCopy-->

証明書チェーンを表示する

証明書には、発行機関の名前と、証明書が発行されたサブジェクトが含まれます。証明書を検証するには、その証明書の発行者を調べて、その発行者を信頼しているかどうかを確認する必要があります。発行者を信頼できない場合は、発行者証明書の発行者を確認する必要があります。ルート CA 証明書または信頼できる発行者に到達するまで、チェーンを上に移動します。

SSL ハンドシェイクの一環として、クライアントが証明書を要求すると、アプライアンスは証明書と、アプライアンスに存在する発行者証明書のチェーンを提示します。管理者は、アプライアンスに存在する証明書の証明書チェーンを表示し、不足している証明書をインストールできます。

CLI を使用して、アプライアンスに存在する証明書の証明書チェーンを表示する

コマンドプロンプトで入力します:

show ssl certchain <cert_name>
<!--NeedCopy-->

c1、c2、および c3 の 3 つの証明書があります。証明書 c3 はルート CA 証明書で、c2 に署名し、c2 は c1 に署名します。次の例は、さまざまなシナリオでの show ssl certchain c1 コマンドの出力を示しています。

シナリオ 1:

証明書 c2 は c1 にリンクされ、c3 は c2 にリンクされています。

証明書 c3 はルート CA 証明書です。

次のコマンドを実行すると、ルート CA 証明書までの証明書リンクが表示されます。

show ssl certchain c1

Certificate chain details of certificate name c1 are:
    1) Certificate name: c2               linked; not a root certificate
    2) Certificate name: c3               linked; root certificate
Done
<!--NeedCopy-->

シナリオ 2:

証明書 c2 は c1 にリンクされています。

証明書 c2 はルート CA 証明書ではありません。

次のコマンドを実行すると、証明書 c3 はルート CA 証明書であるが、c2 にリンクされていないという情報が表示されます。

show ssl certchain c1

Certificate chain  details of certificate name c1 are:
    1) Certificate Name: c2               linked; not a root certificate
    2) Certificate Name: c3               not linked; root certificate
    Done
<!--NeedCopy-->

シナリオ 3:

証明書 c1、c2、および c3 はリンクされていませんが、アプライアンス上に存在します。

次のコマンドを実行すると、証明書 c1 の発行元から始まるすべての証明書に関する情報が表示されます。また、証明書がリンクされていないことも指定されています。

show ssl certchain c1

Certificate chain details of certificate name c1 are:
    1) Certificate Name: c2               not linked; not a root certificate
    2) Certificate Name: c3               not linked; root certificate
    Done
<!--NeedCopy-->

シナリオ 4:

証明書 c2 は c1 にリンクされています。

証明書 c3 はアプライアンスに存在しません。

次のコマンドを実行すると、c1 にリンクされた証明書に関する情報が表示されます。c2 で指定したサブジェクト名の証明書を追加するよう求められます。この場合、ユーザーはルート CA 証明書 c3 を追加するように求められます。

show ssl certchain c1

Certificate chain details of certificate name c1 are:
    1) Certificate Name: c2               linked; not a root certificate
    2) Certificate Name: /C=IN/ST=ka/O=netscaler/CN=test
       Action: Add a certificate with this subject name.
Done
<!--NeedCopy-->

シナリオ 5:

証明書が証明書 c1 にリンクされておらず、c1 の発行者証明書がアプライアンスに存在しません。

次のコマンドを実行すると、証明書 c1 にサブジェクト名を持つ証明書を追加するよう求められます。

sh ssl certchain c1

Certificate chain details of certificate name c1 are:
    1) Certificate Name: /ST=KA/C=IN
       Action: Add a certificate with this subject name.
<!--NeedCopy-->