Biztalk AS2开发经验总结
Posted Focus on biztalk -- chnking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Biztalk AS2开发经验总结相关的知识,希望对你有一定的参考价值。
AS2(Applicability Statement 2)是在互联网上安全可靠地传输数据的标准规范。它通过使用数字证书对传输的信息进行签名、加密保障传输数据的安全性。
AS2通常采用HTTP或HTTPS协议,一般使用“POST”方法向对方发送数据。
AS2规定了一组标准,来规范通讯双方通过HTTP协议安全的交换数据。
这组标准包含了如果对消息进行数字签名来确认发送放的身份,如何对数据加密来保证数据的安全性,在发送方发送了消息后接收方接收到是否要返回MDN(Message Delivery Notification),以及MDN是同步返回还是异步返回。
一、 BizTalk对AS2的支持
BizTalk对提供 AS2 支持的固有功能,它不是产品的外接程序,例如适配器或加速器,它内置于产品之中。
1、BizTalk Server提供的AS2功能
BizTalk Server 使用 AS2 定义方法来发送、接收和验证消息。 BizTalk Server 有助于确保通过加密、签名和压缩的数据传输的安全性。 BizTalk Server 使用加密密钥、数字签名和证书来实现这一目的。
通过 BizTalk Server,你可以将传入和传出的 AS2 消息保存在不可否认的存储位置。包括在保存编码或解码的 AS2 消息和保存 MDN 时,都需这么做。
BizTalk Server 提供了将附件文件名保留为 AS2 消息的一部分的能力。
BizTalk Server 使你能够检查重复的传入消息。
既可以通过与确认消息时使用连接相同的连接同步返回 MDN,也可以通过不同的连接异步返回 MDN。
如果在指定时间段内未接收到 MDN,你可以重新发送 AS2 消息。
BizTalk Server 可提供特定于 AS2 的状态报告。这些报告提供了 AS2 传输的全面状态,其中也包括与交换有关的确认状态。
AS2 要求在接收端和发送端均使用 HTTP 适配器。
BizTalk Server 使你能够通过定义每个协议的证书来覆盖 AS2 消息的默认签名证书。
2、AS2跟EDI的关系
EDI也是BizTalk的內建功能,而且两者经常一起使用,所以有必要理一下AS2和EDI两者之间的关系。
AS2是一个通讯标准,给交换数据的双方提供安全的通讯环境,它只保证通讯双方的数据在公网上安全的传输,并不关心数据本身是什么。打个比方,AS2就是在双方之间构建了一条全封闭的高速公路,保证双方在这条路上跑的各种各样的车能安全可靠的到达对方。
EDI是电子数据格式的标准,是用来定义数据本身的,遵循同样EDI标准的双方能够理解对方的数据,知道对方数据的业务含义。对应AS2好比是建好了安全的告诉公路,EDI就是定义了在可以在这条路上跑的一种标准规格的车辆。
安全高速路上可以跑各种车,既可以跑EDI这样的标准规格的车,也可以跑任何其他类型的车。反过来,EDI标准的车可以跑在AS2这个安全高速路上,也可以跑在其他安全或不安全的高速路或者国道甚至乡间小路。
可见AS2和EDI之间只是一种路和一种车之间的关系,他们可以结合在一起用,也可以毫不相关。
二、 配置证书
证书可以购买也可以自己签发,一般商业环境最好使用从权威证书颁发机构购买的证书。如果使用自签发证书可以参考附录一《申请证书》
1、为AS2配置证书
证书用途 |
证书类型 |
证书存储区 |
定义位置 |
签名(出站) |
自己的私钥 (.pfx) |
每个 AS2 发送端口主机实例服务帐户的“Current User\\Personal”存储区 |
“Group Properties”对话框的“Certificate”页。BizTalk所有Application默认使用这里指定的出站签名证书。 |
签名验证(入站) |
partner的公钥 (.cer) |
“Party Properties”对话框的“Certificate”页 |
|
加密(出站) |
partner的公钥(.cer) |
“Local Computer\\Other People”存储区 |
发送端口属性的“Certificate”页 |
解密(入站) |
自己的私钥 (.pfx) |
每个 AS2 接收端口主机实例服务帐户的“Current User\\Personal”存储区 |
AS2 解码器将根据消息中的证书信息确定证书。 |
2、SSL证书配置
如果AS2双方协商使用SSL传输数据(实际上很大程度没必要使用SSL,因为AS2协议本身就能使用加密签名机制保证信息传输的安全性了),Biztalk作为发送消息和接收消息时会分两种情况。
2.1. BizTalk作为服务端接收partner的消息
Biztalk作为服务端,是使用IIS作为http的接收服务器,所以服务端的SSL证书就是在IIS中设置SSL证书。
2.2. BizTalk作为客户端向partner发送消息
使用Http发送端口使用SSL向partner发送AS2消息。
2.2.1. 服务端证书
如果服务端不需要验证客户端(即不需要客户端证书),http发送端口除了把URL设置为服务端要求的https的URL,不需要安装服务端ssl证书(SSL协议会自动将服务端SSL证书交换到客户端)。
待确认:
服务端证书的上级颁发机构的证书是否需要保存到Local Computer的Trhusted Root Certification Authorites和Intermediate Certification Authorites
2.2.2. 客户端证书
如果服务端需要验证客户端(即需要客户端证书),发送端口需要指定客户端证书(带私钥的证书),客户端证书安装位置:Current User/Personal
发送端口指定SSL客户端证书:
如果不正常,可以试试把证书再加入到: Local Computer/Personal store
三、 反向代理
[BTS] BizTalk EDI AS2 Error 1