Compartir a través de

使用 TLS/SSL 证书从 Intranet 启用远程访问(高级)

本教程介绍如何使用多个本地计算机设置自承载集成运行时,并使用 TLS/SSL 证书(高级)从 Intranet 启用远程访问,以保护集成运行时节点之间的通信。

先决条件

  • SSL/TLS 强加密简介。
  • 证书可以是 Web 服务器的常规 TLS 证书。 要求:
    • 证书必须是公开信任的 X509 v3 证书。 建议使用由公共合作伙伴证书颁发机构(CA)颁发的证书。
    • 每个集成运行时节点都必须信任此证书。
    • 建议使用使用者可选名称(SAN)证书,因为集成运行时节点的所有完全限定域名(FQDN)都需要通过此证书进行保护。 (在 .NET Framework 4.6.1 中,修复了 WCF TLS/SSL 验证仅检查 SAN 中最后一个 DNS 名称的问题。有关详细信息,请参阅 缓解措施:X509CertificateClaimSet.FindClaims 方法。)
    • 不支持通配符证书(*)。
    • 证书必须具有私钥(如 PFX 格式)。
    • 该证书可以使用 Windows Server 2012 R2 支持的任何密钥大小来使用 TLS/SSL 证书。
    • 到目前为止,我们仅支持 CSP(加密服务提供商)证书。 不支持使用 CNG 密钥(密钥存储提供程序)的证书。

Steps

  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. 从 Intranet 启用远程访问:

    1. 在注册自承载集成运行时节点期间:

      1. 选择“ 从 Intranet 启用远程访问 ”,然后选择“ 下一步”。

        显示从 Intranet 启用远程访问的屏幕截图。

      2. 设置 Tcp 端口 (默认为 8060)。 请确保端口在防火墙上处于打开状态。

      3. 单击“选择”。 在弹出窗口中,选择正确的证书,然后选择“ 完成”。

        显示选择证书的屏幕截图。

    2. 注册自托管集成运行时节点后:

      注释

      自承载集成运行时可在仅包含单个节点时更改远程访问设置,这是设计使然。 否则,无法选中单选按钮。

      显示使用 TLS/SSL 证书(高级)启用的屏幕截图。

      1. 转到自承载 Integration Runtime Configuration Manager ->设置 ->从内部网络进行远程访问。 单击更改

      2. 选择“使用 TLS/SSL 证书启用”(高级)。

      3. 单击“选择”。 在弹出窗口中,选择正确的证书,然后选择“ 确定”。

        显示选择证书的屏幕截图。

    3. 验证自承载 Integration Runtime Configuration Manager 中的远程访问设置。

      显示在自承载集成运行时配置管理器中步骤 1 的远程访问设置的验证屏幕截图。

      显示在自托管集成运行时配置管理器的步骤 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. 将所有节点上的证书安装到: 本地计算机 ->受信任的根证书颁发机构存储

      1. 单击证书并安装它。
      2. 选择 “本地计算机” 并输入密码。
      3. 选择“将所有的证书放入下列存储”。 单击“浏览”。 选择 “受信任的根证书颁发机构”。
      4. 选择 “完成 ”以安装证书。

      显示在所有节点上安装证书的屏幕截图。

  6. Troubleshooting

    1. 验证目标存储中是否存在证书:

      1. 按照此步骤 如何:使用 MMC 管理单元查看证书 - WCF 来查看 MMC 管理单元中的证书(本地计算机)。

        显示在 MMC 管理单元中查看证书的屏幕截图。

      2. 确认证书已安装在 “个人 ”和 “受信任的根证书颁发机构”存储 中(如果是自签名证书)。

        显示已安装在“个人”和“受信任的根证书颁发机构”存储区中的证书的屏幕截图。

    2. 验证证书是否具有私钥,并且未过期。

      显示验证证书具有私钥且未过期的屏幕截图。

    3. 确保自承载集成运行时的服务帐户(默认帐户为 NT SERVICE\DIAHostService)具有证书私钥的读取权限:

      1. 右键单击证书 ->“所有任务 ->管理私钥”。

      2. 如果没有,请授予权限, 应用 并保存。

        显示服务帐户对证书私钥具有读取权限的自承载集成运行时的屏幕截图。