証明書の作成
証明機関 (CA) は、公開キー暗号化で使用するデジタル証明書を発行するエンティティです。CA によって発行または署名された証明書は、SSL トランザクションを実行するアプリケーション (Web ブラウザなど) によって自動的に信頼されます。これらのアプリケーションは、信頼する CA の一覧を保持します。セキュリティで保護されたトランザクションに使用されている証明書が、信頼できる CA のいずれかによって署名されている場合、アプリケーションはトランザクションを続行します。
既存の証明書とキーをインポートするには、証明書のインポートを参照してください。
証明書を作成し、SSL 仮想サーバーにバインドするには、次の手順を実行します。ファイル名に使用できる特殊文字は、アンダースコアとドットだけです。
- プライベートキーを作成します。
- 証明書署名要求 (CSR) を作成します。
- CSR を認証局に送信します。
- 証明書とキーのペアを作成します。
- 証明書とキーのペアを SSL 仮想サーバーにバインドする
次の図は、エンドツーエンドのフローを示しています。
秘密キーの作成
注意事項:
リリース 12.1 build 49.x から、PEM キー形式で AES256 アルゴリズムを使用して、アプライアンス上の秘密キーを暗号化できます。256 ビットキーの AES は、DES の 56 ビットキーに比べて、数学的に効率的で安全です。
リリース 12.1 ビルド 50.x から、PKCS #8 形式で RSA キーまたは DSA キーを作成できます。
秘密キーは、デジタル証明書の最も重要な部分です。定義上、このキーは誰にも共有されないため、Citrix ADCアプライアンスで安全に保管する必要があります。公開キーで暗号化されたデータは、秘密キーを使用してのみ復号化できます。
CA から受け取った証明書は、CSR の作成に使用された秘密キーでのみ有効です。このキーは、証明書をCitrix ADCアプライアンスに追加するために必要です。
アプライアンスは、秘密鍵を作成するための RSA と DSA という 2 つの暗号化アルゴリズムをサポートしています。どちらのタイプの秘密キーも認証局 (CA) に送信できます。CA から受け取った証明書は、CSR の作成に使用された秘密キーでのみ有効です。このキーは、証明書をCitrix ADCアプライアンスに追加するために必要です。
重要:
- 秘密鍵へのアクセスを制限してください。プライベートキーへのアクセス権を持つユーザーは、SSL データを復号化できます。
- パスがキー名に含まれている場合、許可される SSL キー名の長さには、絶対パス名の長さが含まれます。
すべての SSL 証明書とキーは、アプライアンスの/nsconfig/ssl
フォルダに保存されます。セキュリティを強化するために、データ暗号化標準(DES)またはトリプル DES(3DES)アルゴリズムを使用して、アプライアンスに保存されている秘密キーを暗号化できます。
CLI を使用した RSA 秘密キーの作成
コマンドプロンプトで、次のように入力します。
create ssl rsakey <keyFile> <bits> [-exponent ( 3 | F4 )] [-keyform (DER | PEM )] [-des | -des3 | -aes256] {-password } [-pkcs8]
例:
create rsakey testkey 2048 -aes256 -password 123456 -pkcs8
GUI を使用した RSA 秘密キーの作成
-
[トラフィック管理] > [SSL]に移動します。
-
[SSL キー] グループで、[RSA キーの作成] を選択します。
-
次のパラメータの値を入力し、[作成] をクリックします。
- [** Key Filename**]:RSA キーファイルの名前、およびオプションでパス。/nsconfig/ssl/ がデフォルトのパスです。
- Key S ize:RSAキーのサイズ(ビット単位)。512ビットから4096ビットの範囲が可能です。
- 公開指数値 -RSA キーの公開指数。指数は暗号アルゴリズムの一部であり、RSA鍵を作成するために必要です。
- Key Format:RSAキーファイルがアプライアンスに保存される形式。
- PEM エンコーディングアルゴリズム -AES 256、DES、またはトリプル DES (DES3) アルゴリズムを使用して、生成された RSA キーを暗号化します。
- PEM パスフレー ズ-必要に応じて、キーのパスフレーズを入力します。
GUI を使用して RSA キーで AES256 エンコードアルゴリズムを選択する
-
トラフィック管理 > SSL > SSL ファイル > RSA キーの作成に移動します。
-
[キー形式] で、[PEM] を選択します。
-
[PEM エンコーディングアルゴリズム] で、[AES256] を選択します。
-
[PKCS8] を選択します。
CLI を使用して DSA 秘密キーを作成する
コマンドプロンプトで、次のように入力します。
create ssl dsakey <keyfile> <bits> [-keyform (DER | PEM)] [-pkcs8]
例:
create ssl dsakey Key-DSA-1 2048 -keyform PEM
GUI を使用して DSA 秘密キーを作成する
- [トラフィック管理] > [SSL] に移動し、[SSL キー] グループで [DSA キーの作成] を選択し、DSA キーを作成します。
- PKCS #8 形式でキーを作成するには、[PKCS8] を選択します。
証明書署名要求での SHA 256 ダイジェストアルゴリズムのサポート
証明書署名要求 (CSR) は、情報の集まりです。これには、ドメイン名、その他の重要な会社の詳細、および証明書の作成に使用する公開キーが含まれます。無効な証明書が生成されないようにするには、入力した詳細情報が正確であることを確認してください。
Citrix ADCアプライアンスは、SHA1ダイジェストアルゴリズムで署名されたCSRの作成をデフォルトでサポートしています。以前のリリースでは、SHA256 ダイジェストアルゴリズムで署名された CSR を作成するには、OpenSSL を使用する必要がありました。
アプライアンスは、SHA256 ダイジェストアルゴリズムで署名された CSR の作成をサポートします。SHA256 で使用される暗号化ハッシュアルゴリズムは、SHA1 よりも強力になります。
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 )
例:
create ssl certreq priv_csr_sha256 -keyfile priv_2048_2 -keyform PEM -countryName IN -stateName Karnataka -localityName Bangalore -organizationName Citrix -organizationUnitName NS -digestMethod SHA256
GUI を使用して証明書署名要求を作成する
- [トラフィック管理] > [SSL]に移動します。
-
[SSL 証明書] で、[証明書署名要求 (CSR) の作成] をクリックします。
- 「 ダイジェスト 方式」で「 SHA256 」を選択します。
証明書署名要求でのサブジェクト代替名のサポート
証明書のサブジェクト代替名 (SAN) フィールドを使用すると、ドメイン名や IP アドレスなどの複数の値を 1 つの証明書に関連付けることができます。つまり、www.example.com、www.example1.com、www.example2.com などの複数のドメインを 1 つの証明書で保護できます。
Google Chrome などの一部のブラウザでは、証明書署名要求(CSR)で共通名がサポートされなくなりました。パブリックに信頼されるすべての証明書に SAN を適用します。
Citrix ADCアプライアンスは、CSRの作成時にSAN値の追加をサポートしています。SAN エントリを持つ CSR を認証局に送信して、SAN エントリを含む署名付き証明書を取得できます。アプライアンスは、要求を受信すると、サーバ証明書の SAN エントリに一致するドメイン名があるかどうかをチェックします。一致するものが見つかると、証明書がクライアントに送信され、SSL ハンドシェイクが完了します。CLI または GUI を使用して、SAN 値を持つ CSR を作成できます。
注:
Citrix ADCアプライアンスは、DNSベースのSAN値のみを処理します。
CLI を使用して、サブジェクトの別名で CSR を作成します
create ssl certReq <reqFile> (-keyFile <input_filename> | -fipsKeyName <string>) [-subjectAltName <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 )]
パラメーター:
subjectAltName: サブジェクトの代替名 (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)
CLI で、値を引用符で囲んで入力します。2 つの値はスペースで区切ります。GUIでは引用符は必要ありません。 最大長さ:127
例:
create certReq test1.csr -keyFile test1.ky -countryName IN -stateName Kar -organizationName citrix -commonName ctx.com -subjectAltName "DNS:*.example.com DNS:www.example.org DNS:www.example.net"
注:
FIPS アプライアンスで、アプライアンス上で直接 FIPS キーを作成する場合は、キーファイル名を FIPS キー名に置き換える必要があります。
create certReq <csrname> -fipsKeyName fipskey.ky -countryName IN -stateName Kar -organizationName citrix -commonName ctx.com -subjectAltName "DNS:www.example.com DNS:www.example.org DNS:www.example.net"
GUIを使用したCSRの作成
- [トラフィック管理] > [SSL] > [SSL ファイル] に移動します。
- [CSR] タブで、[証明書署名要求 (CSR) の作成] をクリックします。
- 値を入力し、[作成] をクリックします。
制限事項
SSL 証明書の作成時に SAN を使用するには、SAN 値を明示的に指定する必要があります。値は CSR ファイルから自動的に読み込まれません。
認証局へのCSRの提出
ほとんどの証明機関 (CA) は、電子メールによる証明書の提出を受け付けています。CA は、CSR の送信元の電子メールアドレスに有効な証明書を返します。
テスト証明書の生成
注:
サーバテスト証明書を生成するには、サーバーテスト証明書の生成を参照してください。
Citrix ADCアプライアンスには、テスト用に自己署名証明書を作成するために使用できるCAツールスイートが組み込まれています。
注意: これらの証明書は、実際のCAではなく、Citrix ADCアプライアンス自体によって署名されるため、本番環境では使用しないでください。実稼働環境で自己署名証明書を使用しようとすると、仮想サーバーにアクセスするたびに「証明書が無効です」という警告が表示されます。
アプライアンスは、次のタイプの証明書の作成をサポートします。
- ルート CA 証明書
- 中間 CA 証明書
- エンドユーザー証明書
- サーバー証明書
- クライアント証明書
証明書を生成する前に、秘密キーを作成し、それを使用してアプライアンスで証明書署名リクエスト(CSR)を作成します。次に、CSRをCAに送信する代わりに、Citrix ADC CAツールを使用して証明書を生成します。
ウィザードを使用して証明書を作成する
- [トラフィック管理] > [SSL]に移動します。
- 詳細ウィンドウの [はじめに] で、作成する証明書の種類に対応するウィザードを選択します。
- 画面の指示に従います。
CLI を使用したルート CA 証明書の作成
コマンドプロンプトで、次のコマンドを入力します。
create ssl cert <certFile> <reqFile> <certType> [-keyFile <input_filename>] [-keyform ( DER | PEM )] [-days <positive_integer>]
次の例では、csreq1 が CSR で、rsa1 が以前に作成された秘密キーです。
例:
create ssl cert cert1 csreq1 ROOT_CERT -keyFile rsa1 -keyForm PEM -days 365
Done
CLI を使用した中間 CA 証明書の作成
create ssl cert <certFile> <reqFile> <certType> [-keyFile <input_filename>] [-keyform ( DER | PEM )] [-days <positive_integer>] [-certForm ( DER | PEM )] [-CAcert <input_filename>] [-CAcertForm ( DER | PEM )] [-CAkey <input_filename>] [-CAkeyForm ( DER | PEM )] [-CAserial <output_filename>]
次の例では、csr1 は前に作成した CSR です。Cert1 と rsakey1 は、自己署名(ルート CA)証明書の証明書と対応するキーで、pvtkey1 は中間 CA 証明書の秘密キーです。
例:
create ssl cert certsy csr1 INTM_CERT -CAcert cert1 -CAkey rsakey1 -CAserial 23
Done
create ssl rsakey pvtkey1 2048 -exponent F4 -keyform PEM
Done
GUI を使用したルート CA 証明書の作成
[トラフィック管理] > [SSL] に移動し、[はじめに] グループで [ルート CA 証明書ウィザード] を選択し、ルート CA 証明書を構成します。
GUI を使用した中間 CA 証明書の作成
[トラフィック管理] > [SSL] に移動し、[はじめに] グループで [中間 CA 証明書ウィザード] を選択し、中間 CA 証明書を構成します。
エンドユーザー証明書を作成する
エンドユーザー証明書には、クライアント証明書またはサーバー証明書を使用できます。テストエンドユーザ証明書を作成するには、中間 CA 証明書または自己署名ルート CA 証明書を指定します。
注:
本稼働環境で使用するエンドユーザー証明書を作成するには、信頼できる CA 証明書を指定し、CSR を CA に送信します。
コマンドラインインターフェイスを使用してテストエンドユーザー証明書を作成する
create ssl cert <certFile> <reqFile> <certType> [-keyFile <input_filename>] [-keyform ( DER | PEM )] [-days<positive_integer>] [-certForm ( DER | PEM )] [-CAcert <input_filename>] [-CAcertForm ( DER | PEM )] [-CAkey<input_filename>] [-CAkeyForm ( DER | PEM )] [-CAserial <output_filename>]
中間証明書がない場合は、CAcert および CAkey のルート CA 証明書の証明書 (cert1) と秘密キー (rsakey1) の値を使用します。
例:
create ssl cert cert12 csr1 SRVR_CERT -CAcert cert1 -CAkey rsakey1 -CAserial 23
Done
中間証明書がある場合は、CaCert および CaKey で中間証明書の証明書 (certsy
) と秘密キー (pvtkey1) の値を使用します。
例:
``` create ssl cert cert12 csr1 SRVR_CERT -CAcert certsy -CAkey pvtkey1 -CAserial 23
Done ``