TLS/SSL 証明書を使用してイントラネットからのリモート アクセスを有効にする (詳細)
このチュートリアルでは、複数のオンプレミス マシンを含むセルフホステッド統合ランタイムを設定し、TLS/SSL 証明書 (詳細) を使用してイントラネットからのリモート アクセスを有効にして、統合ランタイム ノード間の通信をセキュリティで保護する手順について学びます。
前提条件
- SSL/TLS の強力な暗号化の概要について説明します。
- 証明書は、Web サーバーの一般的な TLS 証明書である可能性があります。 要件:
- 証明書は必ず、公的に信頼されている X509 v3 証明書とします。 公的パートナー証明機関 (CA) によって発行された証明書を使用することをお勧めします。
- 統合ランタイムの各ノードで、この証明書を信頼する必要があります。
- 統合ランタイム ノードのすべての完全修飾ドメイン名 (FQDN) がこの証明書によって保護されている必要があるため、サブジェクト代替名 (SAN) 証明書を使用することをお勧めします。 (WCF TLS/SSL 検証が SAN の最後の DNS 名のみを確認する問題は、.NET Framework 4.6.1 で修正されました。詳細については、「軽減策: X509certificateclaimset.findclaims メソッド」を参照してください。)
- ワイルドカード証明書 (*) はサポートされていません。
- 証明書には秘密キー (PFX 形式など) が必要です。
- 証明書では、TLS/SSL 証明書のために Windows Server 2012 R2 でサポートされている任意のキー サイズを使用できます。
- これまでのところ、CSP (暗号化サービス プロバイダー) 証明書のみがサポートされています。 CNG キー (キー Storage プロバイダー) を使用する証明書はサポートされていません。
手順
すべてのコンピューターで次の PowerShell コマンドを実行して、FQDN を取得します:
[System.Net.Dns]::GetHostByName("localhost").HostName
たとえば、FQDN は node1.domain.contoso.com と node2.domain.contoso.comです。
サブジェクトの別名のすべてのマシンの FQDN を含む証明書を生成します。
統合ランタイム構成マネージャーで選択できるように、すべてのノードに証明書をローカルコンピューター>Personal にインストールします:
証明書をクリックしてインストールします。
[ローカル コンピューター] を選択し、パスワードを入力します。
[証明書をすべて次のストアに配置する] を選択します。 [参照] をクリックします。 [個人] を選択します。
[完了] を選択して証明書をインストールします。
イントラネットからのリモート アクセスを有効にする:
セルフホステッド統合ランタイムノードの登録中:
[イントラネットからリモート アクセスを有効にする] を選択し、[次へ] を選択します。
TCP ポート (既定では 8060) を設定します。 ファイアウォールでポートが開いていることを確認します。
[選択] をクリックします。 ポップアップウィンドウで、適切な証明書を選択し、[完了] を選択します。
このセルフホステッド統合ランタイム ノードの登録後:
Note
セルフホステッド統合ランタイムは、設計上、単一ノードがある場合にのみ、リモート アクセスの設定を変更できます。 それ以外の場合、ラジオ ボタンをオンにすることはできません。
[セルフホステッド統合ランタイム Configuration Manager] - [>設定] - [>イントラネットからリモート アクセス] にアクセスします。 [変更] をクリックします。
[TLS/SSL 証明書 (Advanced) を使用して有効にする] を選択します。
[選択] をクリックします。 ポップアップ ウィンドウで、適切な証明書を選択し、[OK] を選択します。
セルフホステッド統合ランタイム Configuration Manager のリモート アクセス設定を確認します。
公的に信頼された証明書を持っていない場合は、自己署名証明書を使用します。
自己署名証明書を生成してエクスポートします (既に証明書を持っている場合は、この手順をスキップできます):
(昇格された特権を持つ) PowerShell を使用して自己署名証明書を生成します:
New-SelfSignedCertificate -DnsName contoso.com, node1.domain.contoso.com, node2.domain.contoso.com -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -CertStoreLocation cert:\LocalMachine\My
生成された証明書を秘密キーと共にパスワードで保護された PFX ファイルにエクスポートするには、その拇印が必要です。
New-SelfSignedCertificate
コマンドの結果からコピーできます。 たとえば、CEB5B4372AA7BF877E56BCE27542F9F0A1AD197F
のようになります。(管理者特権を持つ) PowerShell を使用して、生成された証明書を秘密キーと共にエクスポートします:
$CertPassword = ConvertTo-SecureString -String “Password” -Force -AsPlainText Export-PfxCertificate -Cert cert:\LocalMachine\My\CEB5B4372AA7BF877E56BCE27542F9F0A1AD197F -FilePath C:\self-signedcertificate.pfx -Password $CertPassword
秘密キーを持つ証明書を C:\self-signedcertificate.pfx にエクスポートしました。
Local Machine の >[信頼されたルート証明機関ストア] にすべてのノード上の証明書をインストールします:
- 証明書をクリックしてインストールします。
- [ローカル コンピューター] を選択し、パスワードを入力します。
- [証明書をすべて次のストアに配置する] を選択します。 [参照] をクリックします。 [信頼されたルート証明機関] を選択します。
- [完了] を選択して証明書をインストールします。
トラブルシューティング
ターゲット ストアに証明書が存在することを確認します:
MMC スナップインで証明書 (ローカルコンピューター) を表示する方法については、「MMC スナップインで証明書を表示する方法 - WCF」を参照してください。
証明書が 個人 および 信頼されたルート証明機関ストア にインストールされていることを確認します (自己署名証明書の場合)。
証明書に秘密キーがあり、期限が切れていないことを確認します。
セルフホステッド統合ランタイム (既定のアカウントは NT SERVICE\DIAHostService) のサービス アカウントに、証明書の秘密キーに対する読み取りアクセス許可があることを確認します:
証明書を右クリックし、[>すべてのタスク]-[>秘密キーの管理] をクリックします。
[いいえ] の場合は、アクセス許可を付与して適用し、保存します。