証明書のインストール、リンク、および更新
証明書をインストールするには、「 証明書とキーのペアの追加または更新」を参照してください。
注:
NetScaler PEM、DER、および PFX (PKCS12) の証明書形式をサポートしています。
- PEM には、.crt、.pem、または.cer 拡張子を付けることができます。
- DER には.der という拡張子が付いています。
- PFX には、.p12 または.pfx の拡張子を付けることができます。
通常、ファイル名拡張子は関係ありません。ファイルの内容は異なる方法でエンコードされ、それによって形式が決まり、それに応じて証明書が解析されます。
リンク証明書
多くのサーバー証明書は、複数の階層的な認証局 (CA) によって署名されています。つまり、証明書は次のようなチェーンを形成します。
中間 CA がプライマリとセカンダリの中間 CA 証明書に分割されることがあります。証明書は次のようなチェーンを形成します。
通常、クライアントマシンのローカル証明書ストアにはルート 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-->
注:
NetScalerリリース14.1ビルド21.x以降、証明書とキーパラメーターのパスの長さが63文字から255文字に増えました。
次の例では、証明書セット (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 を使用して証明書セットを追加する
- [ トラフィック管理 ] > [ SSL ] > [ 証明書 ] > [ CA 証明書] に移動します。
- 詳細ペインで、[ インストール] をクリックします。
- [ 証明書のインストール ] ダイアログボックスで、証明書やキーファイル名などの詳細を入力し、[ 証明書バンドル] を選択します。
- [ インストール] をクリックし、[ 閉じる] をクリックします。
証明書リンクの自動化
注: この機能は、リリース 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 を使用して証明書チェーンを作成する
- [ トラフィック管理 ] > [ SSL ] > [ 証明書] に移動します。
- サーバー証明書を選択し、[ アクション ]リストで[ リンク]を選択し、CA 証明書名を指定します。
SSL 証明書バンドルのサポート
証明書バンドルの現在の設計には、次のような欠点があります。
- 証明書バンドルを追加すると、設定に複数のコマンドが追加されます。したがって、2 つのバンドルが共通の中間証明書を共有している場合は、別の証明書バンドルを追加することはできません。
- 証明書バンドルの削除は手動のプロセスです。ファイルは特定の順序で手動で削除する必要があります。
- 証明書バンドルの更新はサポートされていません。
- クラスタはサポートされていません。
証明書バンドルの新しい設計により、これらの問題がすべて解決されます。新しいエンティティは証明書バンドルファイルで動作します。したがって、中間証明書ごとにファイルを作成する必要はありません。この新しいエンティティを使用すると、削除も簡単です。
2 つの証明書バンドルで、中間証明書チェーンの一部を共有できます。証明書バンドルの一部でもある同じサーバ証明書とキーを使用して、証明書とキーのペアを追加することもできます。
注:
NetScalerリリース14.1ビルド21.x以降、次のコマンドの証明書とキーパラメーターのパスの長さが63文字から255文字に増加しました。
- add ssl certKeyBundle - update ssl certKeyBundle
次の例では、次のようになります:
- 証明書バンドル bundle1.pem には、サーバ証明書 (S1) と中間証明書 (IC1 および IC2) が含まれています。
- サーバー証明書は server_cert.pem (S1) です。
- 中間証明書は 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 を使用して証明書バンドルを追加するには
- [ トラフィック管理] > [SSL] > [証明書キーバンドル] に移動します。
- [Install]をクリックします。
- バンドルの名前を指定し、アプライアンスまたはローカルコンピュータ上のバンドルの場所を参照して、ファイルを選択します。
- [Create] をクリックします。
CLI を使用して証明書バンドルを更新するには
注:
update コマンドは、リリース 14.1 ビルド 12.x 以降で使用できます。
コマンドプロンプトで入力します:
update ssl certKeyBundle [-bundlefile <input_filename>]
例:
update ssl certKeyBundle cert_bundle -bundlefile bundle_4096_updated.pem
GUI を使用して証明書バンドルを更新するには
- [ トラフィック管理] > [SSL] > [証明書キーバンドル] に移動します。
- バンドルを選択し、「 更新」をクリックします。
- アプライアンスまたはローカルコンピュータ上のバンドルの場所を参照し、ファイルを選択します。
- [OK] をクリックします。
CLI を使用して証明書バンドルを削除するには
コマンドプロンプトで入力します:
rm ssl certKeyBundle <bundle_name>
例:
rm ssl certkeybundle cert_bundle
GUI を使用して証明書バンドルを削除するには
- [ トラフィック管理] > [SSL] > [証明書キーバンドル] に移動します。
- バンドルを選択し、「 削除」をクリックします。
- 確認ダイアログボックスで、「 はい」をクリックします。
CLI を使用して証明書バンドルを 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-->
GUI を使用して証明書バンドルを SSL 仮想サーバーにバインドするには
- Traffic Management > Load Balancing > Virtual Serversに移動します。
- SSL 仮想サーバーを選択し、[ 編集] をクリックします。
- 負荷分散仮想サーバーページの 「 証明書 」セクションで、「 バンドル証明書」をクリックします。
-
「 証明書キーバンドルのバインディング 」ページで、次のいずれかを実行します:
- バンドルの選択:右矢印 (
>
) をクリックし、バンドルを選択します。[Select] をクリックします。 - バンドルを追加:「 追加」をクリックします。アプライアンスまたはローカルコンピュータ上のバンドルの場所を参照し、「 作成」をクリックします。
- バンドルの選択:右矢印 (
- [Bind] をクリックします。
CLI を使用して証明書バンドルを 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-->
GUI を使用して証明書バンドルを SNI 証明書バンドルとして SSL 仮想サーバーにバインドするには
- Traffic Management > Load Balancing > Virtual Serversに移動します。
- SSL 仮想サーバーを選択し、[ 編集] をクリックします。
- 「 証明書 」セクションで、「 バンドル証明書」をクリックします。
- 「 証明書キーバンドルのバインディング 」ページで、次のいずれかを実行します:
- バンドルの選択:右矢印 (「>」) をクリックし、リストからバンドルを選択します。[Select] をクリックします。
- バンドルを追加:「 追加」をクリックします。アプライアンスまたはローカルコンピュータ上のバンドルの場所を参照し、「 作成」をクリックします。
- SnicertKeyバンドルを選択してください。
- [Bind] をクリックします。
CLI を使用して SSL 仮想サーバーから証明書バンドルをバインド解除するには
コマンドプロンプトで入力します:
unbind ssl vserver <vip-name> -certkeybundleName <certkeybundle_name> [ -SNICertkeybundle]
例:
unbind ssl vserver v_server -certkeybundleName cert_bundle
GUI を使用して SSL 仮想サーバーから証明書バンドルをバインド解除するには
- Traffic Management > Load Balancing > Virtual Serversに移動します。
- SSL 仮想サーバーを選択し、[ 編集] をクリックします。
- 「 証明書 」セクションで、「 バンドル証明書」をクリックします。
- SSL 仮想サーバー証明書バンドルのバインドページで、バンドルを選択し、「バインド解除」をクリックします。
- 確認ダイアログボックスで、「 はい」をクリックします。
- [閉じる] をクリックします。
- [完了] をクリックします。
証明書バンドルバインドのユーザーシナリオ
次のシナリオでは、ADC アプライアンスが証明書バンドルに関連する要求を処理する方法を説明します。
シナリオ 1: 証明書とキーのペアと、同じサーバー証明書を含む証明書バンドルが同じ SSL 仮想サーバーにバインドされている
証明書とキーのペアと、同じサーバ証明書を含む証明書バンドルを同じ SSL 仮想サーバにバインドする場合、コマンドの順序によって最終的なバインドが決まります。
例:
- 証明書バンドル bundle1.pem には、サーバ証明書 S1 と中間証明書 IC1 および IC2 が含まれています。
- 証明書ファイル server_cert.pem には S1 が含まれています。
bundle1.pem と server_cert.pem はどちらも同じサーバー証明書 S1 を持っています。
次のコマンドを指定された順序で実行すると、SSL 仮想サーバーにバインドされているサーバー証明書が、その仮想サーバーにバインドされている証明書バンドルに置き換えられます。
add ssl certkeybundle b1 -bundlefile bundle1.pem
add ssl certkey server_cert -cert server_cert.pem
bind ssl vserver v1 -certkeybundle b1
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 ホチキス止めはサポートされていません。
注
更新操作は、リリース14.1ビルド12.xの証明書バンドルでサポートされています。証明書バンドルを直接更新できるようになりました。以前は、最初にバンドルをバインド解除して削除し、次に証明書バンドルを追加してバインドする必要がありました。
既存のサーバー証明書を更新する
既存のサーバ証明書を手動で変更するには、次の手順を実行する必要があります。
- 仮想サーバから古い証明書のバインドを解除します。
- 証明書をアプライアンスから削除します。
- 新しい証明書をアプライアンスに追加します。
- 新しい証明書を仮想サーバにバインドします。
証明書とキーのペアを置き換える際のダウンタイムを短縮するために、既存の証明書を更新できます。証明書を別のドメインに発行された証明書に置き換える場合は、証明書を更新する前にドメインチェックを無効にする必要があります。
有効期限が切れる証明書に関する通知を受け取るには、有効期限モニターを有効にします。
構成済みの SSL 仮想サーバーまたはサービスから証明書を削除またはバインド解除すると、その仮想サーバーまたはサービスは非アクティブになります。新しい有効な証明書がバインドされると、アクティブになります。ダウンタイムを減らすために、更新機能を使用して、SSL 仮想サーバーまたは SSL サービスにバインドされている証明書とキーのペアを置き換えることができます。
NetScalerアプライアンスでSSL証明書を更新する方法の概要図。
注:
NetScalerリリース14.1ビルド21.x以降、証明書とキーパラメーターのパスの長さが63文字から255文字に増加しました。
既存の証明書を更新する方法
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 を使用して既存の証明書とキーのペアを更新する
-
[ トラフィック管理 ] > [ SSL ] > [ 証明書 ] > [ サーバー証明書] に移動します。
-
更新する証明書を選択し、[ Update] をクリックします。
-
[ 証明書とキーを更新] を選択します。
-
[ 証明書ファイル名] で、[ ファイルの選択 ] > [ ローカル] をクリックし、更新された.pfx ファイルまたは証明書 PEM ファイルを参照します。
-
.pfx ファイルをアップロードすると、.pfx ファイルのパスワードを指定するよう求められます。
-
証明書 pem ファイルをアップロードする場合は、証明書キーファイルもアップロードする必要があります。キーが暗号化されている場合は、暗号化パスワードを指定する必要があります。
-
-
新しい証明書の共通名が古い証明書と一致しない場合は、[ No Domain Check] を選択します。
-
[OK] をクリックします。この証明書がバインドされているすべての SSL 仮想サーバーは自動的に更新されます。
-
証明書を置き換えた後、証明書リンクを新しい中間証明書に更新しなければならない場合があります。リンクを壊さずに中間証明書を更新する方法の詳細については、「 リンクを壊さずに中間証明書を更新する」を参照してください。
-
更新された証明書を右クリックし、[証明書リンク] をクリックして、中間証明書にリンクされているかどうかを確認します。
-
証明書がリンクされていない場合は、更新された証明書を右クリックし、[ リンク ] をクリックして中間証明書にリンクします。リンクするオプションが表示されない場合は、まず、新しい中間証明書をアプライアンスの [ CA Certificates ] ノードにインストールする必要があります。
-
既存の 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 を使用して証明書のドメインチェックを無効にする
- [ トラフィック管理] > [SSL] > [証明書] に移動し、証明書を選択して [ 更新] をクリックします。
- [ ドメインチェックなし] を選択します。
ADC アプライアンスのデフォルト証明書を、アプライアンスのホスト名と一致する信頼できる CA 証明書に置き換えます
次の手順では、デフォルトの証明書 (ns-server-certificate
) が内部サービスにバインドされていることを前提としています。
- トラフィック管理 > SSL > SSL 証明書 > 証明書要求の作成に移動します。
- [共通名] に、
test.citrixadc.com
と入力します。 - CSR を信頼できる認証局に送信します。
- 信頼できる CA から証明書を受け取ったら、このファイルを
/nsconfig/ssl
ディレクトリにコピーします。 - [ トラフィック管理] > [SSL] > [証明書] > [サーバー証明書] に移動します。
- デフォルトのサーバ証明書 (
ns-server-certificate
) を選択し、[ Update] をクリックします。 - [ 証明書の更新 ] ダイアログボックスの [ 証明書ファイル名] で、署名後に CA から受け取った証明書を参照します。
- [ Key File Name ] フィールドで、デフォルトのプライベートキーファイル名 (
ns-server.key
) を指定します。 - [ ドメインチェックなし] を選択します。
- [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 を使用して証明書の有効期限モニターを有効にする
- [ トラフィック管理] > [SSL] > [証明書] に移動し、証明書を選択して [ 更新] をクリックします。
- [ 有効期限が切れたら通知する] を選択し、必要に応じて通知期間を指定します。
リンクを解除せずに中間証明書を更新する
既存のリンクを壊すことなく中間証明書を更新できます。置き換えられる証明書によって発行されたリンクされた証明書の AuthorityKeyIdentifier 拡張には、認証局証明書のシリアル番号 (‘authorityCertSerialNumber’) フィールドを含めないでください。「AuthorityKeyIdentifier」拡張にシリアル番号フィールドが含まれる場合、古い証明書と新しい証明書のシリアル番号が同じである必要があります。上記の条件が満たされれば、リンク内の証明書をいくつでも 1 つずつ更新できます。以前は、中間証明書が更新されるとリンクが壊れました。
たとえばCertA
、CertB
、CertC
、CertD
の 4 つの証明書があります 。 証明書CertA
はCertB
の発行者 、CertB
はCertC
の発行者、などです。リンクを解除せずに中間証明書CertB
をCertB_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-->