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 プロバイダー) を使用する証明書はサポートされていません。

手順

  1. すべてのコンピューターで次の PowerShell コマンドを実行して、FQDN を取得します:

    [System.Net.Dns]::GetHostByName("localhost").HostName
    

    たとえば、FQDN は node1.domain.contoso.comnode2.domain.contoso.comです。

  2. サブジェクトの別名のすべてのマシンの FQDN を含む証明書を生成します。

    サブジェクトの別名での証明書の生成を示すスクリーンショット。

  3. 統合ランタイム構成マネージャーで選択できるように、すべてのノードに証明書をローカルコンピューター>Personal にインストールします:

    1. 証明書をクリックしてインストールします。

    2. [ローカル コンピューター] を選択し、パスワードを入力します。

      ローカル マシンの選択を示すスクリーンショット。

    3. [証明書をすべて次のストアに配置する] を選択します。 [参照] をクリックします。 [個人] を選択します。

    4. [完了] を選択して証明書をインストールします。

  4. イントラネットからのリモート アクセスを有効にする:

    1. セルフホステッド統合ランタイムノードの登録中:

      1. [イントラネットからリモート アクセスを有効にする] を選択し、[次へ] を選択します。

        イントラネットからのリモート アクセスの有効化を示すスクリーンショット。

      2. TCP ポート (既定では 8060) を設定します。 ファイアウォールでポートが開いていることを確認します。

      3. [選択] をクリックします。 ポップアップウィンドウで、適切な証明書を選択し、[完了] を選択します。

        証明書の選択を示すスクリーンショット。

    2. このセルフホステッド統合ランタイム ノードの登録後:

      Note

      セルフホステッド統合ランタイムは、設計上、単一ノードがある場合にのみ、リモート アクセスの設定を変更できます。 それ以外の場合、ラジオ ボタンをオンにすることはできません。

      [TLS/SSL 証明書 (詳細) を使用して有効にする] のスクリーンショット。

      1. [セルフホステッド統合ランタイム Configuration Manager] - [>設定] - [>イントラネットからリモート アクセス] にアクセスします。 [変更] をクリックします。

      2. [TLS/SSL 証明書 (Advanced) を使用して有効にする] を選択します。

      3. [選択] をクリックします。 ポップアップ ウィンドウで、適切な証明書を選択し、[OK] を選択します。

        証明書の選択を示すスクリーンショット。

    3. セルフホステッド統合ランタイム Configuration Manager のリモート アクセス設定を確認します。

      セルフホステッド統合ランタイム Configuration Manager でのリモート アクセス設定の確認を示すスクリーンショット (手順 1)。

      セルフホステッド統合ランタイム Configuration Manager でのリモート アクセス設定の確認を示すスクリーンショット (手順 2)。

  5. 公的に信頼された証明書を持っていない場合は、自己署名証明書を使用します。

    1. 自己署名証明書を生成してエクスポートします (既に証明書を持っている場合は、この手順をスキップできます):

      1. (昇格された特権を持つ) 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
        
      2. 生成された証明書を秘密キーと共にパスワードで保護された PFX ファイルにエクスポートするには、その拇印が必要です。 New-SelfSignedCertificate コマンドの結果からコピーできます。 たとえば、CEB5B4372AA7BF877E56BCE27542F9F0A1AD197F のようになります。

      3. (管理者特権を持つ) PowerShell を使用して、生成された証明書を秘密キーと共にエクスポートします:

        $CertPassword = ConvertTo-SecureString -String “Password” -Force -AsPlainText
        Export-PfxCertificate -Cert
        cert:\LocalMachine\My\CEB5B4372AA7BF877E56BCE27542F9F0A1AD197F -FilePath C:\self-signedcertificate.pfx -Password $CertPassword            
        
      4. 秘密キーを持つ証明書を C:\self-signedcertificate.pfx にエクスポートしました。

    2. Local Machine の >[信頼されたルート証明機関ストア] にすべてのノード上の証明書をインストールします:

      1. 証明書をクリックしてインストールします。
      2. [ローカル コンピューター] を選択し、パスワードを入力します。
      3. [証明書をすべて次のストアに配置する] を選択します。 [参照] をクリックします。 [信頼されたルート証明機関] を選択します。
      4. [完了] を選択して証明書をインストールします。

      すべてのノードでの証明書のインストールを示すスクリーンショット。

  6. トラブルシューティング

    1. ターゲット ストアに証明書が存在することを確認します:

      1. MMC スナップインで証明書 (ローカルコンピューター) を表示する方法については、「MMC スナップインで証明書を表示する方法 - WCF」を参照してください。

        MMC スナップインでの証明書の表示を示すスクリーンショット。

      2. 証明書が 個人 および 信頼されたルート証明機関ストア にインストールされていることを確認します (自己署名証明書の場合)。

        [個人用] および [信頼されたルート証明機関] ストアにインストールされている証明書を示すスクリーンショット。

    2. 証明書に秘密キーがあり、期限が切れていないことを確認します。

      証明書に秘密キーがあり、有効期限が切れていないことを確認する画面のスクリーンショット。

    3. セルフホステッド統合ランタイム (既定のアカウントは NT SERVICE\DIAHostService) のサービス アカウントに、証明書の秘密キーに対する読み取りアクセス許可があることを確認します:

      1. 証明書を右クリックし、[>すべてのタスク]-[>秘密キーの管理] をクリックします。

      2. [いいえ] の場合は、アクセス許可を付与して適用し、保存します。

        セルフホステッド統合ランタイムのサービス アカウントに証明書の秘密キーに対する読み取りアクセス許可があることを確認する画面のスクリーンショット。