Citrix Virtual Apps and Desktops

証明書の管理

TLSは証明書を使用して2者間の信頼を確立します。 サービスを提供する各サーバーに適切な証明書をインストールし、そのサーバーに接続するマシンがその証明書を信頼していることを確認する必要があります。 証明書の署名には、次のオプションがあります:

  • 自己署名証明書。 これらは推奨されません。 この証明書を信頼する必要がある他のマシンに手動でコピーする必要があるため、管理が困難です。
  • エンタープライズ証明機関。 既存のPKIが導入されている場合、これは通常、内部デバイス間で使用する証明書に署名する最もシンプルなオプションです。
  • 公的証明機関。 この場合、証明機関に対してドメインの所有権を証明する必要があります。 管理されていないクライアントデバイスは通常、主要な公的証明機関からの証明書を信頼するように事前に構成されているというメリットがあります。

新しい証明書を作成する

証明書を作成する場合は、組織のポリシーと手順に従ってください。

Microsoft証明機関を使用して証明書を作成する

Microsoft証明機関が、Active DirectoryドメインまたはDelivery Controllerが参加している信頼されたフォレストに統合されている場合は、証明書MMCスナップインの証明書登録ウィザードから証明書を取得できます。 Microsoft証明機関は、Webサーバーでの使用に対応して発行された証明書テンプレートを保有している必要があります。

ルート証明書は、グループポリシーを使用してドメイン上の他のマシンに自動的に展開されます。 したがって、ドメイン上の他のすべてのマシンは、Microsoft証明機関を使用して作成された証明書を信頼します。 ドメイン上にないマシンがある場合は、ルート証明機関証明書をエクスポートして、それらのマシンにインポートする必要があります。

  1. サーバーで、MMCコンソールを開き、証明書スナップインを追加します。 プロンプトが表示されたら、[コンピューターアカウント]を選択します。

  2. [個人]>[証明書] を展開し、[すべてのタスク]>[新しい証明書の要求] コンテキストメニューコマンドを使用します。

    MMC証明書スナップイン

  3. [次へ] をクリックして開始し、[次へ] をクリックして、Active Directoryの登録から証明書を取得していることを確認します。

  4. Web Server Exportableなどの適切なテンプレートを選択します。 [件名]の値が自動的に入力されるようにテンプレートが設定されている場合は、詳細を指定せずに [登録] をクリックできます。 それ以外の場合は、詳しい情報をクリックします。この証明書を登録するには詳細情報が必要です。 設定を構成するには、ここをクリックしてください。

    証明書の要求ダイアログボックス

  5. 証明書テンプレートの詳細情報を入力するには、[詳細] 矢印ボタンをクリックし、次の項目を構成します:

    サブジェクト名:共通名を選択し、サーバーの完全修飾ドメイン名を追加します。

    別名: DNSを選択し、サーバーの完全修飾ドメイン名を追加します。

    証明書のプロパティ

  6. [OK] を押します。

  7. 証明書を作成するには、[登録]を押します。 証明書の一覧に表示されます。

    個人証明書のスクリーンショット

IISを使用して証明書要求を作成する

サーバーにIISがインストールされている場合は、次の手順を実行します:

  1. インターネットインフォメーションサービス(IIS)マネージャーを開きます
  2. 接続一覧でサーバーノードを選択します。
  3. サーバー証明書を開きます。 "サーバー証明書"の場所を示すスクリーンショット
  4. [Actions] ペインから、[Create Certificate Request…]を選択します。 "create certificate request"が強調表示されたアクションメニューのスクリーンショット
  5. 識別名のプロパティを入力します。 識別名のプロパティ画面のスクリーンショット
  6. [Cryptographic Service Provider Properties]画面上で、デフォルトの[Cryptographic service provider]のままにします。 2048以上のキーサイズを選択します。 暗号化サービスプロバイダーのプロパティ画面のスクリーンショット
  7. ファイル名を選択し、[完了]を押します。 ファイル名画面のスクリーンショット
  8. CSRを証明機関にアップロードします。
  9. 証明書を受け取ったら、[Actions]ペインから、[Complete Certificate Request…]を選択します。 "Complete Certificate Request"が強調表示されたアクションメニューのスクリーンショット
  10. 証明書を選択し、フレンドリ名を入力して、[OK]を押します。 完全な証明書応答ウィンドウのスクリーンショット

サブジェクトの別名を設定する方法はありません。 したがって、証明書は共通名を使用して指定されたサーバーに制限されます。

証明書スナップインから証明書署名要求を作成する

証明書MMCスナップイン内から、証明書署名要求を作成できます。 これにより、証明書を提供する証明機関に送信できるファイルが生成されます。 次に、証明書をインポートして、ローカルの秘密キーと結合する必要があります。

  1. サーバーで、MMCコンソールを開き、証明書スナップインを追加します。 プロンプトが表示されたら、[コンピューターアカウント]を選択します。

  2. [個人] > [証明書]に展開します
  3. [すべてのタスク] > [詳細設定操作] > [カスタム要求の作成]を選択します。
  4. [始める前に][次へ]を選択します。
  5. 証明書登録ポリシーの選択画面で、適切な既存のポリシーを選択するか、登録ポリシーなしで続行します
  6. [カスタム要求]画面で、登録ポリシーを使用する場合は、Web Server Exportableなどの適切なテンプレート(使用可能な場合)を選択します。
  7. 証明書情報画面で、[詳細]を展開し、[プロパティ]を選択します。
  8. [証明書のプロパティ]ウィンドウの[全般]タブに、適切なフレンドリ名を入力します。
  9. [サブジェクト]タブ上:

    1. サブジェクト名の下で、共通名を選択し、サーバーの完全修飾ドメイン名を入力します。 ワイルドカードを入力できます。 [Add] を選択します。
    2. サブジェクト名の下の組織、組織単位、地域、州、国に適切な値を追加します。
    3. 代替名の下のDNSを選択します。 サーバーの完全修飾ドメイン名を追加します。 複数のサーバーの完全修飾ドメイン名またはワイルドカードの完全修飾ドメイン名を追加できます。
  10. [拡張機能]タブ上:

    • キー使用法の下に、デジタル署名キーの暗号化を追加します。
    • 拡張キー使用法(アプリケーションポリシー)の下に、サーバー認証クライアント認証を追加します。
  11. [秘密キー]タブ上。

    • 暗号化サービスプロバイダー(CSP)の選択で、適切なプロバイダーを選択します。
    • キーオプションで、適切なキーサイズを選択します。 RSAプロバイダーの場合、少なくとも2048のキーサイズを使用します。 セキュリティを強化するために4096を選択することもできますが、パフォーマンスに若干の影響が出ます。
    • キーオプションで、秘密キーをエクスポート可能にするを選択します。
  12. [OK]を選択します。
  13. [次へ] を選択します。
  14. [参照]を選択して、要求を保存します。
  15. [完了]を選択します。
  16. CSRを証明機関にアップロードします。
  17. 証明書を受け取ったら、それを同じサーバーにインポートして、秘密キーにリンクさせます。

新しい自己署名証明書を作成する

Delivery ControllerとWeb Studioのインストール中に自己署名証明書が作成されます。 新しい自己署名証明書を生成し、それを使用して既存の証明書を置き換えることができます。

IISマネージャーを使用する

サーバーにIISがインストールされている場合は、次の手順を実行できます:

  1. 管理者としてサーバーにログオンします。

  2. IISマネージャーを開きます
  3. Server Certificatesを開きます
  4. Actionsペインで、Create Self-Signed Certificateを選択します。

    サーバー証明書

  5. [自己署名証明書の作成] で、証明書の名前を入力し、[OK] をクリックします。 その後、自己署名証明書が作成されます。

    自己署名証明書の作成

PowerShellの使用

PowerShellを使用して自己署名証明書を作成できます:

  $certSubject = "CN=myddc.example.com" # The FQDN of the server.
  $friendlyName = "Self-Signed-3"
$expireYears = 5

## Create new self-signed certificate under LocalMachine\My
$certificate = New-SelfSignedCertificate -Subject $certSubject -CertStoreLocation "Cert:\LocalMachine\My\" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256 -FriendlyName $friendlyName -NotAfter $([System.DateTime]::Now.AddYears($expireYears))

# Add to trusted root certificates
$rootCertStore = Get-Item "Cert:\LocalMachine\Root\"
$rootCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$rootCertStore.Add($certificate)
<!--NeedCopy-->

既存の証明書をインポートする

次のいずれかの方法を使用して、既存の証明書をサーバーにインポートできます。

証明書のインポートウィザード

  1. PFXファイルをダブルクリックするか、ファイルを右クリックして[Install PFX]を選択します。 これにより、証明書のインポートウィザードが開きます。

  2. [保存場所][ローカルマシン] を選択します。

    証明書のインポートウィザードのスクリーンショット

  3. 必要に応じてパスワードを入力します。

    証明書のインポートウィザードの秘密キー保護手順のスクリーンショット

  4. Certificate Storeを選択します。 サーバー証明書の場合は、Personalを選択します。 このマシンから信頼するルート証明書または自己署名証明書の場合は、Trusted Root Certification Authoritiesを選択します。

    証明書のインポートウィザードの証明書ストアの手順のスクリーンショット

コンピューター証明書の管理コンソールを使用する

  1. コンピューター証明書の管理コンソールを開き、適切な証明書ストアに移動します。 サーバー証明書の場合、通常は、 Personal > Certificatesです。 ルート証明書または自己署名証明書を信頼するには、Trusted Root Certification Authorities > Certificatesを選択します。

  2. 証明書を右クリックし、> All Tasks > Import…を選択します。

    コンピューター証明書の管理コンソール

  3. Browse…を選択し、ファイルを選択します。

  4. 必要に応じてパスワードを入力します。

PowerShellの使用

証明書をインポートするには、PowerShellコマンドレットImport-PfxCertificateを使用します。 たとえば、パスワード123456の証明書certificate.pfxを個人証明書ストアにインポートするには、次のコマンドを実行します:

  Import-PfxCertificate -Password $(ConvertTo-SecureString -String "123456" -AsPlainText -Force) -CertStoreLocation Cert:\LocalMachine\My\ -FilePath .\Desktop\certificate.pfx
<!--NeedCopy-->

信頼されたルート証明書をインポートするには、CertStoreLocationCert:\LocalMachine\Root\に設定します。

秘密キーなしで証明書をエクスポートする

証明書をエクスポートして他のデバイスにインポートし、証明書を信頼できるようにするには、秘密キーを除外する必要があります。

  1. [Manage Computer Certificates]を開きます。 Personal > Certificatesに移動し、エクスポートする証明書を選択します。

  2. Actionメニューから、All TasksExportを選択します。

    エクスポートメニューを使用した証明書管理のスクリーンショット

  3. No, do not export the private keyを選択し、Nextを押します。

    証明書のエクスポート

  4. 形式DER encoded binary X.509 (.CER)(デフォルト)を選択してNextを押します。

  5. ファイル名を入力して、Nextを押します。

    証明書エクスポートウィザードのスクリーンショット、ファイル名

  6. [完了]を選択します。

    証明書エクスポートウィザードのスクリーンショット、エクスポート成功

秘密キーを使用して証明書をエクスポートする

証明書をエクスポートして他のサーバーで使用できるようにするには、秘密キーを含める必要があります。

  1. [Manage Computer Certificates]を開きます。 Personal > Certificatesに移動し、エクスポートする証明書を選択します。

  2. Actionメニューから、All TasksExportを選択します。

    エクスポートメニューを使用した証明書管理のスクリーンショット

  3. Yes, export the private keyを選択し、Nextを押します。

    証明書のエクスポート

  4. Securityタブでパスワードを入力し、Nextを選択します。

    証明書エクスポートウィザードのセキュリティ手順のスクリーンショット

  5. ファイル名を入力して、Nextを選択します。

    証明書エクスポートウィザードのスクリーンショット、ファイル名

  6. [完了]を選択します。

    証明書エクスポートウィザードのスクリーンショット、エクスポート成功

証明書をPEM形式に変換する

デフォルトでは、WindowsはPKCS#12形式の証明書を、秘密キーを含む.pfxファイルとしてエクスポートします。 NetScaler Gatewayまたはライセンスサーバーで証明書を使用するには、証明書と秘密キーをPEM形式の別々のファイルに抽出する必要があります。 これは、opensslを使用して実行できます。

証明書をPEM形式でエクスポートするには、次のコマンドを実行します:

  openssl pkcs12 -in name.pfx -clcerts -nokeys -out name.cer
<!--NeedCopy-->

既存のパスワードと新しいパスフレーズの入力を求められます

キーをPEM形式でエクスポートするには、次のコマンドを実行します:

  openssl pkcs12 -in name.pfx -nocerts -out name.key
<!--NeedCopy-->

証明書の信頼

  • 公的証明機関からの証明書を使用する場合、デバイスは通常、ルート証明書を使用して事前構成されます。
  • エンタープライズ証明機関を使用する場合は、その証明書を信頼する必要があるすべてのデバイスにルート証明書を展開する必要があります。 Active Directory証明書サービスを使用する場合、ルート証明書はグループポリシーを使用してドメイン上のすべてのマシンにも展開されます。 NetScaler Gatewayなどのドメインに参加していないマシンや他のドメインのマシンには、ルート証明書を手動でインポートする必要があります。
  • 自己署名証明書を使用している場合は、証明書を信頼する必要があるすべてのマシンに手動でインストールする必要があります。

Windowsから自己署名証明書または信頼されたルート証明書をエクスポートするには、「秘密キーなしで証明書をエクスポートする」を参照してください。

Windowsが証明書を信頼するには、[信頼されたルート証明機関]ストアに証明書をインポートする必要があります。 PowerShellを使用する場合は、ストア「Cert:\LocalMachine\Root\」を入力します。

NetScalerが証明書を信頼するには、まず証明書をPEM形式に変換し、次にルート証明書をインストールします。

証明書の管理