使用 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 密钥(密钥存储提供者)的证书。
步骤
在所有计算机上运行以下 PowerShell 命令,获取其 FQDN:
[System.Net.Dns]::GetHostByName("localhost").HostName
例如,FQDN 是 node1.domain.contoso.com 和 node2.domain.contoso.com。
在“使用者可选名称”中生成包含所有计算机 FQDN 的证书。
在“本地计算机”->“个人”的所有节点上安装该证书,以便在集成运行时配置管理器上选择该证书:
单击证书并安装它。
选择“本地计算机”并输入密码。
选择“将所有的证书放入下列存储”。 单击“浏览”。 选择“个人”。
选择“完成”以安装该证书。
启用“从 Intranet 进行远程访问”:
在自承载集成运行时节点注册期间:
选择“从 Intranet 进行远程访问”,然后选择“下一步”。
设置“TCP 端口”(默认为 8060)。 确保已在防火墙中打开该端口。
单击“选择”。 在弹出窗口中,选择正确的证书,然后选择“完成”。
注册自承载集成运行时节点后:
注意
自承载集成运行时只有在具有单个节点时才能更改远程访问设置,这是由设计决定的。 否则,无法选中单选按钮。
转到自承载“Integration Runtime Configuration Manager”->“设置”->“从 Intranet 进行远程访问”。 单击“更改”。
选择“使用 TLS/SSL 证书进行访问(高级)”。
单击“选择”。 在弹出窗口中,选择正确的证书,然后选择“确定”。
验证自承载“Integration Runtime 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。
在“本地计算机”->“受信任的根证书颁发机构存储”的所有节点上安装此证书:
- 单击证书并安装它。
- 选择“本地计算机”并输入密码。
- 选择“将所有的证书放入下列存储”。 单击“浏览”。 选择“受信任的根证书颁发机构”。
- 选择“完成”以安装该证书。
疑难解答
验证目标存储中是否存在该证书:
按照操作指南:使用 MMC 管理单元查看证书 - WCF中的过程,在 MMC 管理单元中查看证书(本地计算机)。
确认证书已安装在“个人”和“受信任的根证书颁发机构存储”中(如果它是自签名证书)。
验证证书是否具有私钥,并且是否未过期。
确保自承载集成运行时的服务帐户(默认帐户为 NT SERVICE\DIAHostService)具有证书私钥的读取权限:
右键单击此证书 ->“所有任务”->“管理私钥”。
如果没有读取权限,请授予该权限,然后应用并保存。