Citrix ADCアプライアンスで証明書署名リクエストを作成してSSL証明書を使用します
証明書のインストール、リンク、更新については、「 証明書のインストール、リンク、および更新」を参照してください。
証明書を作成し、SSL 仮想サーバーにバインドするには、次の手順を実行します。
- プライベートキーを作成します。
- 証明書署名要求 (CSR) を作成します。
- 認証局へのCSRの提出
- 証明書とキーのペアを作成します。
- 証明書とキーのペアを SSL 仮想サーバーにバインドする
次の図は、ワークフローを示しています。
秘密キーの作成
秘密キーは、デジタル証明書の最も重要な部分です。定義上、このキーは誰にも共有されないため、Citrix ADCアプライアンスに安全に保管する必要があります。公開キーで暗号化されたデータは、秘密キーを使用してのみ復号化できます。
CA から受け取った証明書は、CSR の作成に使用された秘密キーでのみ有効です。このキーは、証明書をCitrix ADCアプライアンスに追加するために必要です。
重要:秘密鍵へのアクセスを制限してください。プライベートキーへのアクセス権を持つユーザーは、SSL データを復号化できます。
注: 許可されるSSL鍵名の長さには、パスが鍵名に含まれている場合は絶対パス名の長さが含まれます。
CLI を使用した RSA 秘密キーの作成
コマンドプロンプトで入力します。
create ssl rsakey <keyFile> <bits> [-exponent ( 3 | F4 )] [-keyform (DER | PEM )] [-des | -des3 | -aes256] {-password } [-pkcs8]
<!--NeedCopy-->
例:
create rsakey RSA_Key 2048 -aes256 -password 123456 -pkcs8
<!--NeedCopy-->
GUI を使用した RSA 秘密キーの作成
-
[ トラフィック管理] > [SSL] > [SSL ファイル] に移動します。
-
[ SSLファイル ]ページで、[ キー ]タブをクリックし、[ RSAキーの作成]を選択します。
-
次のパラメータの値を入力し、[作成] をクリックします。
- [Key Filename]:RSA キーファイルの名前、およびオプションで、RSA キーファイルへのパス。 /nsconfig/ssl/ がデフォルトのパスです。
- キーサイズ:RSA キーのサイズ(ビット単位)。512ビットから4096ビットの範囲が可能です。
- 公開指数-RSA キーの公開指数。指数は暗号アルゴリズムの一部であり、RSA鍵を作成するために必要です。
- Key Format:RSAキー・ファイルがアプライアンスに保存される形式。
- PEM エンコーディングアルゴリズム-AES 256、DES、またはトリプル DES (DES3) アルゴリズムを使用して、生成された RSA キーを暗号化します。デフォルトで秘密キーは暗号化されません。
- PEMパスフレーズ -秘密鍵が暗号化されている場合は、鍵のパスフレーズを入力します。
証明書署名要求を作成する
秘密キーを使用して証明書署名要求を作成し、証明機関に送信します。
CLI を使用して証明書署名要求を作成する
コマンドプロンプトで入力します。
create ssl certreq <reqFile> -keyFile <input_filename> | -fipsKeyName <string>) [-keyForm (DER | PEM) {-PEMPassPhrase }] -countryName <string> -stateName <string> -organizationName <string> -organizationUnitName <string> -localityName <string> -commonName <string> -emailAddress <string> {-challengePassword } -companyName <string> -digestMethod ( SHA1 | SHA256 )
<!--NeedCopy-->
例:
create ssl certreq priv_csr_sha256 -keyfile priv_2048_2 -keyform PEM -countryName IN -stateName Karnataka -localityName Bangalore -organizationName Citrix -organizationUnitName NS -digestMethod SHA256
<!--NeedCopy-->
GUI を使用して証明書署名要求を作成する
- [ トラフィック管理 ] > [ SSL] に移動します。
-
[ SSLファイル ]ページで、[ CSR ]タブをクリックし、[ 証明書署名要求(CSR)の作成]をクリックします。
-
次のパラメータの値を入力します。
-
要求ファイル名 -証明書署名要求(CSR)の名前と、オプションでパス。 /nsconfig/ssl/ デフォルトのパスです。
-
キーファイル名 -証明書署名要求の作成に使用される秘密キーの名前と、オプションでパス。証明書とキーのペアの一部になります。秘密キーは RSA キーまたは ECDSA キーのいずれかです。キーは、アプライアンスのローカルストレージに存在する必要があります。 /nsconfig/ssl がデフォルトのパスです。
- キーの形式
- PEMパスフレーズ(暗号化されたキーの場合)
- ダイジェスト法
- 組織名
- 州または県
- 国
-
サブジェクト代替名: サブジェクト代替名(SAN)は、X.509の拡張であり、subjectAltNameフィールドを使用してさまざまな値をセキュリティ証明書に関連付けることができます。これらの値は「サブジェクト代替名」(SAN)と呼ばれます。名前には次のものがあります。
- IPアドレス(プレフィックスは “IP:” 例: IP:198.51.10.5 IP:192.0.2.100)
- DNS名(プレフィックスは “DNS:” 例: DNS:www.example.com DNS:www.example.org DNS:www.example.net)
メモ:
-
証明書のサブジェクト代替名 (SAN) フィールドを使用すると、ドメイン名や IP アドレスなどの複数の値を 1 つの証明書に関連付けることができます。つまり、www.example.com、www.example1.com、www.example2.com などの複数のドメインを 1 つの証明書で保護できます。
-
Google Chrome などの一部のブラウザでは、証明書署名リクエスト (CSR) で共通名がサポートされなくなりました。パブリックに信頼されるすべての証明書に SAN を適用します。
- 共通名: 指定した名前は、SSLハンドシェイク中にサーバー証明書の共通名と比較されます。2 つの名前が一致すると、ハンドシェイクは成功します。共通名が一致しない場合、サービスまたはサービスグループに指定された共通名が、証明書のSANフィールド値と比較されます。これらの値のいずれかに一致すると、ハンドシェイクは成功します。この設定は、たとえば、ファイアウォールの内側に 2 台のサーバがあり、一方のサーバが他方のサーバの ID をスプーフィングする場合に特に便利です。共通名がチェックされていない場合、IP アドレスが一致すれば、いずれかのサーバから提示された証明書が受け入れられます。
-
- [作成] をクリックします。
認証局へのCSRの提出
ほとんどの証明機関 (CA) は、電子メールによる証明書の提出を受け付けています。CA は、CSR の送信元の電子メールアドレスに有効な証明書を返します。
証明書とキーのペアを追加します
認証局から受け取った署名付き証明書をインストールします。
注: 証明書とキーは、デフォルトで /nsconfig/ssl ディレクトリに保存されます。証明書またはキーが他の場所に保存されている場合は、Citrix ADCアプライアンス上のファイルへの絶対パスを指定する必要があります。
CLI を使用した証明書とキーのペアの追加
add ssl certKey <certkeyName> -cert <string>[(-key <string> [-password]) | -fipsKey <string>] [-inform ( DER | PEM )] [<passplain>] [-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod <positive_integer>]]
show ssl certKey [<certkeyName>]
<!--NeedCopy-->
例:
add ssl certKey rsa_certkeypair -cert server_cert.pem -key RSA_Key.pem -password ssl -expiryMonitor ENABLED -notificationPeriod 30
Done
<!--NeedCopy-->
GUI を使用した証明書とキーのペアの追加
-
[トラフィック管理] > [SSL] > [証明書] > [サーバー]に移動します。
-
次のパラメーターの値を入力してInstallをクリックします。
-
証明書とキーのペア名-証明書と秘密キーのペアの名前。
-
証明書ファイル名-認証局から受け取った署名付き証明書。
-
[Key File Name]:証明書とキーのペアの形成に使用される秘密キーファイルの名前、および任意でパス。
-
証明書とキーのペアを SSL 仮想サーバーにバインドする
重要:証明書を SSL 仮想サーバーにバインドする前に、中間証明書をこの証明書にリンクします。証明書のリンクの詳細については、「 証明書のチェーンを作成する」を参照してください。
SSL トランザクションの処理に使用される証明書は、SSL データを受信する仮想サーバーにバインドする必要があります。SSL データを受信する仮想サーバが複数ある場合は、有効な証明書とキーのペアをそれぞれにバインドする必要があります。
CLI を使用して SSL 証明書とキーのペアを仮想サーバーにバインドする
コマンドプロンプトで次のコマンドを入力して、SSL 証明書とキーのペアを仮想サーバーにバインドし、構成を確認します。
bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName> -CA -skipCAName
show ssl vserver <vServerName>
<!--NeedCopy-->
例:
bind ssl vs vs1 -certkeyName cert2 -CA -skipCAName
Done
sh ssl vs vs1
Advanced SSL configuration for VServer vs1:
DH: DISABLED
Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
IncludeSubDomains: NO
HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: DISABLED TLSv1.2: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: cert1 CA Certificate OCSPCheck: Optional CA_Name Sent
2) CertKey Name: cert2 CA Certificate OCSPCheck: Optional CA_Name Skipped
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
GUI を使用して SSL 証明書とキーのペアを仮想サーバーにバインドする
-
[トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを開きます。[証明書] セクション内をクリックします。
-
矢印をクリックして、証明書とキーのペアを選択します。
-
リストから証明書とキーのペアを選択します。
-
証明書とキーのペアを仮想サーバにバインドします。
トラブルシューティング
以下は、2 つの一般的なエラーシナリオで、それぞれのソリューション記事へのリンクを示します。
-
Citrix ADCアプライアンスに証明書とキーのペアをインストールするときに次のエラーが表示された場合は、https://support.citrix.com/article/CTX134233を参照してください。
エラー: 無効な秘密キー、または PEM パスフレーズがこの秘密キーに必要です。
-
Citrix ADCアプライアンスにSSL証明書をインストールするときに次のエラーが表示された場合は、 https://support.citrix.com/article/CTX137887を参照してください。
エラー: 証明書が無効です。