Citrix ADC

証明書の作成

証明機関 (CA) は、公開キー暗号化で使用するデジタル証明書を発行するエンティティです。CA によって発行または署名された証明書は、SSL トランザクションを実行するアプリケーション (Web ブラウザなど) によって自動的に信頼されます。これらのアプリケーションは、信頼する CA の一覧を保持します。セキュリティで保護されたトランザクションに使用されている証明書が、信頼できる CA のいずれかによって署名されている場合、アプリケーションはトランザクションを続行します。

注意: すべてのSSLトランザクションには、Verisignなどの認証されたCAから取得した証明書を使用することをお勧めします。Citrix ADCアプライアンスで生成された証明書は、テスト目的でのみ使用し、ライブ展開では使用しないでください。

既存の証明書とキーをインポートするには 、証明書のインポートを参照してください

証明書を作成し、SSL 仮想サーバーにバインドするには、次の手順を実行します。ファイル名に使用できる特殊文字は、アンダースコアとドットだけです。

  • プライベートキーを作成します。
  • 証明書署名要求 (CSR) を作成します。
  • 認証局へのCSRの提出
  • 証明書とキーのペアを作成します。
  • 証明書とキーのペアを SSL 仮想サーバーにバインドする

次の図は、ワークフローを示しています。

エンドツーエンドフロー

新しい証明書を作成してインストールするにはどうすればよいですか」へのビデオリンク。

秘密キーの作成

メモ:

  • リリース 12.1 ビルド 49.x から、PEM キー形式の AES256 アルゴリズムを使用して、アプライアンス上の秘密キーを暗号化できます。256 ビットキーの AES は、DES(Data Encryption Standard)の 56 ビットキーに比べて、数学的に効率的で安全です。

  • リリース 12.1 ビルド 50.x から、PKCS #8 形式で RSA キーを作成できます。

秘密キーは、デジタル証明書の最も重要な部分です。定義上、このキーは誰にも共有されないため、Citrix ADCアプライアンスに安全に保管する必要があります。公開キーで暗号化されたデータは、秘密キーを使用してのみ復号化できます。

CA から受け取った証明書は、CSR の作成に使用された秘密キーでのみ有効です。このキーは、証明書をCitrix ADCアプライアンスに追加するために必要です。

アプライアンスは、秘密鍵を作成するための RSA暗号化アルゴリズムをサポートしています。どちらのタイプの秘密キーも認証局(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]
<!--NeedCopy-->

例:

create rsakey testkey 2048 -aes256 -password 123456 -pkcs8
<!--NeedCopy-->

GUI を使用した RSA 秘密キーの作成

  1. [ トラフィック管理] > [SSL] > [SSL ファイル] に移動します。

  2. [ キー ]タブで、[ RSAキーの作成]を選択します。

    RSA キーの作成

  3. 次のパラメータの値を入力し、[作成] をクリックします。

    • [Key Filename]:RSA キーファイルの名前、およびオプションで、RSA キーファイルへのパス。 /nsconfig/ssl/ がデフォルトのパスです。
    • キーサイズ:RSA キーのサイズ(ビット単位)。512ビットから4096ビットの範囲が可能です。
    • 公開指数-RSA キーの公開指数。指数は暗号アルゴリズムの一部であり、RSA鍵を作成するために必要です。
    • Key Format:RSAキー・ファイルがアプライアンスに保存される形式。
    • PEM エンコーディングアルゴリズム-AES 256、DES、またはトリプル DES (DES3) アルゴリズムを使用して、生成された RSA キーを暗号化します。デフォルトで秘密キーは暗号化されません。
    • PEMパスフレーズ -秘密鍵が暗号化されている場合は、鍵のパスフレーズを入力します。

    値の入力

GUIを使用して、RSAキーでAES256エンコーディングアルゴリズムを選択します

  1. Traffic Management > SSL > SSL Files > Create RSA Keyに移動します。

  2. [キー形式] で、[PEM] を選択します。

  3. [PEM エンコーディングアルゴリズム] で、[AES256] を選択します。

  4. [PKCS8] を選択します。

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 を使用して証明書署名要求を作成する

  1. Traffic Management > SSLに移動します。
  2. [SSL 証明書] で、[証明書署名要求 (CSR) の作成] をクリックします。

    証明書署名要求の作成

  3. ダイジェスト 方式」で「 SHA256 」を選択します。

詳細については 、CSR の作成を参照してください

証明書署名要求でのサブジェクト代替名のサポート

証明書のサブジェクト代替名 (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 )]
<!--NeedCopy-->

パラメーター:

subjectAltName: サブジェクトの代替名 (SAN) は X.509 の拡張機能で、subjectAltName フィールドを使用してさまざまな値をセキュリティ証明書に関連付けることができます。これらの値は、「サブジェクトの別名」(SAN) と呼ばれます。名前には次のものがあります。

  1. IP アドレス (プレフィックスに「IP:」の例:IP: 198.51.10.5 IP: 192.0.2.100)

  2. DNS 名 (「DNS:」で始まるプレフィックス例:DNS: www.example.com DNS: www.example.org DNS: www.example.net)

コマンドラインで、引用符で囲んで値を入力します。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"
<!--NeedCopy-->

注:

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"
<!--NeedCopy-->

GUIを使用したCSRの作成

  1. Traffic Management > SSL > SSL Filesに移動します。
  2. [CSR] タブで、[証明書署名要求 (CSR) の作成] をクリックします。
  3. 値を入力し、[作成] をクリックします。

制限事項

SSL 証明書の作成時に SAN を使用するには、SAN 値を明示的に指定する必要があります。値は CSR ファイルから自動的に読み込まれません。

認証局へのCSRの提出

ほとんどの証明機関 (CA) は、電子メールによる証明書の提出を受け付けています。CA は、CSR の送信元の電子メールアドレスに有効な証明書を返します。

CSRは /nsconfig/ssl フォルダに保存されます。

テスト証明書の生成

注:

サーバーテスト証明書を生成するには、 サーバーテスト証明書の生成を参照してください

Citrix ADCアプライアンスには、テスト用に自己署名証明書を作成するために使用できるCAツールスイートが組み込まれています。

注意: Citrix ADCアプライアンスは実際のCAではなくこれらの証明書に署名するため、実稼働環境で使用しないでください。実稼働環境で自己署名証明書を使用しようとすると、仮想サーバーにアクセスするたびに「証明書が無効です」という警告が表示されます。

アプライアンスは、次のタイプの証明書の作成をサポートします。

  • ルート CA 証明書
  • 中間 CA 証明書
  • エンドユーザー証明書
    • サーバー証明書
    • クライアント証明書

証明書を生成する前に、秘密キーを作成し、それを使用してアプライアンスで証明書署名リクエスト(CSR)を作成します。次に、CSRをCAに送信する代わりに、Citrix ADC CAツールを使用して証明書を生成します。

ウィザードを使用して証明書を作成する

  1. Traffic Management > SSLに移動します。
  2. 詳細ペインの[ はじめに]で、作成する証明書の種類に応じたウィザードを選択します。
  3. 画面の指示に従います。

CLI を使用したルート CA 証明書の作成

コマンドプロンプトで、次のコマンドを入力します。

create ssl cert <certFile> <reqFile> <certType> [-keyFile <input_filename>] [-keyform ( DER | PEM )] [-days <positive_integer>]
<!--NeedCopy-->

次の例では、csreq1 が CSR で、rsa1 が以前に作成された秘密キーです。

例:

create ssl cert cert1 csreq1 ROOT_CERT -keyFile rsa1 -keyForm PEM -days 365

  Done
<!--NeedCopy-->

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>]
<!--NeedCopy-->

次の例では、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
<!--NeedCopy-->

GUI を使用したルート CA 証明書の作成

Traffic Management > SSLに移動してGetting StartedグループでRoot-CA Certificate Wizardを選択してルートCA証明書を構成します。

GUI を使用した中間 CA 証明書の作成

Traffic Management > SSLに移動してGetting StartedグループでIntermediate-CA Certificate Wizardを選択して中間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>]
<!--NeedCopy-->

中間証明書がない場合は、 CAcertCAkeyのルートCA証明書の証明書(cert1)と秘密鍵(rsakey1)の値を使用します。

例:

create ssl cert cert12 csr1 SRVR_CERT -CAcert cert1 -CAkey rsakey1 -CAserial 23

Done
<!--NeedCopy-->

中間証明書がある場合は、CAcertおよび CAkeyの中間証明書の証明書 (certsy) と秘密キー (pvtkey1) の値を使用します。

例:

create ssl cert cert12 csr1 SRVR_CERT -CAcert certsy -CAkey pvtkey1 -CAserial 23

Done
<!--NeedCopy-->

OpenSSLを使用して自己署名SAN証明書を作成する

複数のサブジェクト代替名を使用して自己署名SAN証明書を作成するには、次の手順を実行します。

  1. 会社の要件に従って関連するフィールドを編集して、ローカルコンピューターにOpenSSL構成ファイルを作成します。

    注:次の例では、構成ファイルは”req.conf “です 。

    [req]
    distinguished_name = req_distinguished_name
    x509_extensions = v3_req
    prompt = no
    [req_distinguished_name]
    C = US
    ST = VA
    L = SomeCity
    O = MyCompany
    OU = MyDivision
    CN = www.company.com
    [v3_req]
    keyUsage = keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = www.company.net
    DNS.2 = company.com
    DNS.3 = company.net
    <!--NeedCopy-->
    
  2. ファイルをCitrix ADCアプライアンスの /nsconfig/sslディレクトリにアップロードします 。

  3. nsroot ユーザーとしてCitrix ADC CLIにログオンし、シェルプロンプトに切り替えます。

  4. 次のコマンドを実行して、証明書を作成します。

    cd /nsconfig/ssl
    openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout cert.pem -out cert.pem -config req.conf -extensions 'v3_req'
    <!--NeedCopy-->
    
  5. 次のコマンドを実行して、証明書を確認します。

    openssl x509 -in cert.pem -noout –text
    Certificate:
    Data:
    Version: 3 (0x2)
    Serial Number:
    ed:90:c5:f0:61:78:25:ab
    Signature Algorithm: md5WithRSAEncryption
    Issuer: C=US, ST=VA, L=SomeCity, O=MyCompany, OU=MyDivision, CN=www.company.com
    Validity
    Not Before: Nov 6 22:21:38 2012 GMT
    Not After : Nov 6 22:21:38 2014 GMT
    Subject: C=US, ST=VA, L=SomeCity, O=MyCompany, OU=MyDivision, CN=www.company.com
    Subject Public Key Info:
    Public Key Algorithm: rsaEncryption
    RSA Public Key: (2048 bit)
    Modulus (2048 bit):
    …
    Exponent: 65537 (0x10001)
    X509v3 extensions:
    X509v3 Key Usage:
    Key Encipherment, Data Encipherment
    X509v3 Extended Key Usage:
    TLS Web Server Authentication
    X509v3 Subject Alternative Name:
    DNS:www.company.net, DNS:company.com, DNS:company.net
    Signature Algorithm: md5WithRSAEncryption …
    <!--NeedCopy-->