BizTalk服务器与支付网关的HTTPS/TLS集成

在现代的网络环境中,确保数据传输的安全性至关重要。本文将探讨BizTalk服务器如何通过HTTPS和TLS 1.0协议与外部支付网关进行安全通信,以及在此过程中遇到的挑战和解决方案。

在沙特阿拉伯,用户可以通过在线保险政策购买系统购买保险政策。支付方式包括SADAD支付系统和信用卡支付。SADAD是沙特的一个集中支付机构,允许用户在没有银行账户或信用卡的情况下进行支付和交易管理。当用户选择SADAD作为支付方式时,系统会生成一个独特的SADAD号码,用户可以在规定的时间内使用这个号码进行支付。

BizTalk应用程序的功能

BizTalk服务器负责管理与支付相关的数据传输。具体功能包括:

  • 账单上传:当用户通过Web门户购买保险政策时,账单将实时上传到中央支付网关。
  • 支付通知:当用户完成SADAD号码的支付时,中央支付网关会通知公司。收到通知后,BizTalk更新内部系统,确认支付已完成,并生成保险政策。

以上两个集成都使用HTTPS和TLS1.0协议,并使用安全证书。最初,它们使用SSL,后来升级到TLS。

应用程序和安全设置

支付网关和BizTalk服务器通过HTTPS/TLS使用证书进行通信。证书包含私钥,应从证书颁发机构获得。证书的生成过程如下:

  1. 在BizTalk服务器上创建证书请求。
  2. 在IIS中,展开“ServerName”,选择“Server Certificate”,然后双击。
  3. 点击右侧的“Create Certificate Request”,填写所需的证书信息,然后点击“Next”。现在生成了证书请求文件,并将私钥存储在服务器上。
  4. 将“证书请求文件”发送给证书颁发机构,以生成证书。
  5. 从证书颁发机构接收证书并导入到服务器。
  6. 在IIS中,展开“ServerName”,选择“Server Certificate”,点击右侧的“Complete Certificate Request”。输入从证书颁发机构接收到的证书文件的完整路径,并输入创建证书请求文件时使用的“Friendly name”(Friendly name应与证书请求表中的“Common Name”匹配)。点击OK,证书现在已创建。

为了将证书分配给IIS中的网站:

  1. 在IIS中,选择BizTalk应用程序所在的网站。点击“Binding…”,然后添加新的HTTPS绑定。
  2. 从类型中选择HTTPS,从“SSL certificate”中选择新导入的证书,并在需要时更改端口。
  3. 点击“Directory Security”中的“View”。将打开一个证书页面,必须在页面底部看到一个密钥图像,后面跟着“有一个与此证书对应的私钥”的声明。(如果没有看到它,那意味着没有私钥)。

注意事项

在项目中,证书的目的是包括以下内容:

  • 确保远程计算机的身份。
  • 向远程计算机证明身份。
  • 保护电子邮件消息。
  • 允许在互联网上进行安全通信。

证书还应该添加到适当的证书存储中,如Trusted Root、Intermediate Certificate Authorities和Personal,使用MMC。导入后,验证证书树结构是否可见为Root、Intermediate和Site Certificate。

2016年3月29日:初始版本。

遇到的挑战和解决方案

在尝试调用接口时,遇到了“禁止访问”的错误。因此,查看了IIS日志中的确切错误代码。它是403 - 访问被拒绝。继续检查子错误代码,可以看到它是403.13,这意味着“客户端证书已被吊销”。

IIS日志的位置:C:\inetpub\logs\LogFiles\W3SVC1

这意味着服务器无法确认证书未在证书吊销列表(CRL)中找到。因此,如果证书中提到的CRL URL无法从服务器系统访问,或者客户端证书在CRL URL中找到,它将抛出错误。在案例中,CRL URL无法从服务器系统访问。因此,决定为此证书禁用此CRL检查。

禁用CRL检查的注册表键

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters\SslBindingInfo\IP:Port] "DefaultSslCertCheckMode"=dword:00000001

显示SSL证书的命令

netsh http show sslcert
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485