証明書の管理
TLSは、2つの当事者間の信頼を確立するために証明書を使用します。サービスを提供する各サーバーに適切な証明書をインストールし、そのサーバーに接続するマシンがその証明書を信頼することを確認する必要があります。証明書の署名には、次のオプションがあります。
- 自己署名証明書。これらは推奨されません。これらの証明書は、信頼する必要がある他のマシンに手動でコピーする必要があるため、管理が困難です。
- エンタープライズ認証局。既存のPKIが導入されている場合、これは通常、内部デバイス間で使用する証明書に署名する最も簡単なオプションです。
- パブリック認証局。これには、ドメインの所有権を認証局に証明する必要があります。管理されていないクライアントデバイスは、主要なパブリック認証局からの証明書を信頼するように通常事前に構成されているという利点があります。
新しい証明書の作成
証明書を作成するための組織のポリシーと手順に従ってください。
Microsoft証明機関を使用して証明書を作成する
Microsoft証明機関がActive DirectoryドメインまたはDelivery Controllerが参加している信頼されたフォレストに統合されている場合、証明書MMCスナップインの証明書登録ウィザードから証明書を取得できます。Microsoft証明機関は、Webサーバーでの使用に適した証明書テンプレートを公開している必要があります。
ルート証明書は、グループポリシーを使用してドメイン上の他のマシンに自動的に展開されます。したがって、ドメイン上の他のすべてのマシンは、Microsoft証明機関を使用して作成された証明書を信頼します。ドメイン上にないマシンがある場合は、ルート証明機関証明書をエクスポートして、それらのマシンにインポートする必要があります。
-
サーバーで、MMCコンソールを開き、証明書スナップインを追加します。プロンプトが表示されたら、[コンピューターアカウント]を選択します。
-
個人 > 証明書を展開し、すべてのタスク > 新しい証明書の要求コンテキストメニューコマンドを使用します。

-
次へをクリックして開始し、次へをクリックしてActive Directory登録から証明書を取得することを確認します。
-
Webサーバーのエクスポート可能など、適切なテンプレートを選択します。テンプレートが件名の値を自動的に提供するように設定されている場合は、詳細を指定せずに登録をクリックできます。それ以外の場合は、この証明書を登録するには、さらに情報が必要です。設定を構成するには、ここをクリックしてください。をクリックします。
「証明書要求」ダイアログ(/ja-jp/citrix-virtual-apps-desktops/2503/media/tls-request-certificates.png)
-
証明書テンプレートの詳細情報を提供するには、詳細矢印ボタンをクリックして、以下を設定します。
サブジェクト名: 共通名を選択し、サーバーのFQDNを追加します。
代替名: DNSを選択し、サーバーのFQDNを追加します。
「証明書のプロパティ」(/ja-jp/citrix-virtual-apps-desktops/2503/media/tls-certificate-properties.png)
-
OKを押します。
-
証明書を作成するには、登録を押します。証明書の一覧に表示されます。
「個人証明書」のスクリーンショット(/ja-jp/citrix-virtual-apps-desktops/2503/media/personal-certificates.png)
IISを使用して証明書要求を作成する
IISがサーバーにインストールされている場合は、次の手順を完了します。
- インターネット インフォメーション サービス (IIS) マネージャーを開きます
- 接続リストでサーバーノードを選択します。
- サーバー証明書を開きます。 「サーバー証明書」の場所を示すスクリーンショット(/ja-jp/citrix-virtual-apps-desktops/2503/media/iis-server-certificates.png)
- 操作ペインから、証明書要求の作成…を選択します。 「証明書要求の作成」が強調表示された操作メニューのスクリーンショット(/ja-jp/citrix-virtual-apps-desktops/2503/media/iis-create-certificate-request.png)
- 識別名プロパティを入力します。 「識別名プロパティ」画面のスクリーンショット(/ja-jp/citrix-virtual-apps-desktops/2503/media/iis-request-certificate-properties.png)
- 「暗号化サービスプロバイダーのプロパティ」画面で、「暗号化サービスプロバイダー」は既定のままにします。キーサイズは2048以上を選択します。
- ファイル名を選択し、「完了」を押します。
- CSRを証明機関にアップロードします。
- 証明書を受け取ったら、「操作」ペインから「証明書の要求を完了…」を選択します。
- 証明書を選択し、「フレンドリ名」を指定して「OK」を押します。
サブジェクト代替名を設定する方法はありません。したがって、証明書は共通名を使用して指定されたサーバーに限定されます。
証明書スナップインから証明書署名要求を作成する
証明書MMCスナップイン内から、証明書署名要求を作成できます。これにより、証明書を提供する証明機関に送信できるファイルが生成されます。その後、証明書をインポートして、ローカルの秘密キーと結合する必要があります。
-
サーバーで、MMCコンソールを開き、証明書スナップインを追加します。プロンプトが表示されたら、コンピューターアカウントを選択します。
- 「個人」>「証明書」を展開します。
- 「すべてのタスク」>「高度な操作」>「カスタム要求の作成」を選択します。
- 「開始する前に」で、「次へ」を選択します。
- 「証明書登録ポリシーの選択」画面で、適切な既存のポリシーを選択するか、「登録ポリシーなしで続行」を選択します。
- 「カスタム要求」画面で、登録ポリシーを使用している場合は、利用可能な場合は、「Webサーバー(エクスポート可能)」などの適切なテンプレートを選択します。
- 「証明書情報」画面で、「詳細」を展開し、「プロパティ」を選択します。
- 「証明書のプロパティ」ウィンドウの「全般」タブで、適切なフレンドリ名を入力します。
-
「サブジェクト」タブで:
- 「サブジェクト名」の下で、「共通名」を選択し、サーバーのFQDNを入力します。ワイルドカードを入力することもできます。「追加」を選択します。
- 「サブジェクト名」の下で、組織、組織単位、地域、都道府県、国に適切な値を追加します。
- 「代替名」の下で、「DNS」を選択します。サーバーのFQDNを追加します。複数のサーバーFQDNまたはワイルドカードFQDNを追加できます。
-
「拡張機能」タブで:
- 「キー使用法」の下で、「デジタル署名」と「キーの暗号化」を追加します。
- 「拡張キー使用法 (アプリケーションポリシー)」の下で、「サーバー認証」と「クライアント認証」を追加します。
-
「秘密キー」タブで。
- 「暗号化サービスプロバイダー (CSP) の選択」の下で、適切なプロバイダーを選択します。
- 「キーオプション」の下で、適切なキーサイズを選択します。RSAプロバイダーの場合、最小で2048のキーサイズを使用します。セキュリティを強化するために4096を選択することもできますが、パフォーマンスにわずかな影響があります。
- 「キーオプション」の下で、「秘密キーをエクスポート可能にする」を選択します。
- 「OK」を選択します。
- 「次へ」を選択します。
- 「参照」を選択し、要求を保存します。
- 「完了」を選択します。
- CSRを証明機関にアップロードします。
- 証明書を受け取ったら、秘密鍵にリンクされるように、同じサーバーに(#import-existing-certificate)します。
新しい自己署名証明書を作成する
自己署名証明書は、delivery controller™とweb studioのインストール中に作成されます。新しい自己署名証明書を生成し、既存の証明書と置き換えることができます。
IISマネージャーを使用する
IISがサーバーにインストールされている場合は、次の手順を実行できます。
-
管理者としてサーバーにログオンします。
- IISマネージャーを開きます。
- 「サーバー証明書」を開きます。
-
「操作」ペインで、「自己署名証明書の作成」を選択します。

-
「自己署名証明書の作成」で、証明書の名前を入力し、「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-->
既存の証明書をインポートする
以下のいずれかの方法を使用して、既存の証明書をサーバーにインポートできます。
証明書のインポートウィザード
-
PFX ファイルをダブルクリックするか、ファイルを右クリックして PFX のインストール を選択します。これにより、証明書のインポートウィザード が開きます。
-
ストアの場所 には、ローカルコンピューター を選択します。

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

-
証明書ストア を選択します。サーバー証明書の場合は、個人 を選択します。これがルート証明書またはこのマシンから信頼したい自己署名証明書である場合は、信頼されたルート証明機関 を選択します。

コンピューター証明書の管理コンソールを使用する
-
コンピューター証明書の管理コンソールを開き、適切な証明書ストアに移動します。サーバー証明書の場合、通常は 個人 > 証明書 です。ルート証明書または自己署名証明書を信頼するには、信頼されたルート証明機関 > 証明書 を選択します。
-
証明書を右クリックし、> すべてのタスク > インポート… を選択します。

-
参照…を選択し、ファイルを選択します。
-
必要に応じてパスワードを入力します。
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-->
信頼されたルート証明書をインポートするには、CertStoreLocation を Cert:\LocalMachine\Root\ に設定します。
秘密キーなしで証明書をエクスポートする
証明書を信頼するために他のデバイスにインポートできるように証明書をエクスポートするには、秘密キーを除外する必要があります。
-
コンピューター証明書の管理を開きます。個人 > 証明書 に移動し、エクスポートする証明書を選択します。
-
操作 メニューから、すべてのタスク、次に エクスポート を選択します。

-
いいえ、秘密キーをエクスポートしません を選択し、次へ を押します。

-
形式 DER encoded binary X.509 (.CER) (既定) を選択し、次へ を押します。
-
ファイル名を入力し、次へ を押します。

-
「完了」を選択します。

秘密キーを含む証明書のエクスポート
他のサーバーで使用できるように証明書をエクスポートするには、秘密キーを含める必要があります。
-
コンピューター証明書の管理を開きます。「個人」>「証明書」に移動し、エクスポートする証明書を選択します。
-
「操作」メニューから「すべてのタスク」を選択し、次に「エクスポート」を選択します。

-
「はい、秘密キーをエクスポートします」を選択し、次に「次へ」を選択します。

-
「セキュリティ」タブでパスワードを入力し、次に「次へ」を選択します。

-
ファイル名を入力し、「次へ」を選択します。

-
「完了」を選択します。

証明書をPEM形式に変換する
デフォルトでは、Windowsは秘密鍵を含む.pfxファイルとしてPKCS#12形式で証明書をエクスポートします。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形式に変換し、次にルート証明書をインストールします。