AS2是互联网上安全,可靠地传输数据的最常用的方式。AS2为信息建立信封并通过电子证书和加密在互联网上安全地发送出去。
因此被很多大公司特别是国外的公司在B2B领域广泛使用。
BizTalk从2006开始内建支持AS2;而且配置很简单(如果你知道了AS2基本原理和BizTalk的基本配置)
AS2传输方式
AS2简单的说类似SSL,通过HTTP/HTTPS协议传输;利用证书实现加签和加密,因此必须要可用于交换和加签的证书(说白了就是需要带私钥的证书,下面会提到怎么申请证书)。
练习的环境
一台BizTalk(Fabrikam),从文件目录下把XML文件通过AS2的方式发送给另外一台BizTalk(Contoso),Contoso BizTalk把接收的http请求落地到一个文件目录。
这里没有使用https(SSL)如果要使用https只需要把接收的地址配置成https即可。
申请证书
这个环境里面我需要2本证书,一本给
申请证书最简单的方式还是自己创建一个CA服务这样跟证书,证书链都有了,使用命令创建太繁琐,我搞了半天没有搞出想要的证书。
申请证书的时候一定勾选
证书就有了私钥
2本证书申请好后就要导入证书(如果是通过IE申请的,系统会自动安装)。
将各自的证书导入到当前用户的个人下面。如图
将对方导出的公钥证书导入到当前用户的其他人下面
注意:如果BizTalk报 "The Signing Certificate has not been configured" error using certificates with EDI/AS2,这可能是你的当前用户和BizTalk实例运行配置的账户不是同一个,因此找不到证书。所以必须要用BizTalk服务的账户来导 允许命令 runas /user:BizTalkServiceAccount mmc
证书配置好后就完成了一大半。
在BizTalk上配置证书
下面了解一下证书的用途。
BizTalk证书的配置参见
用于签名的证书部署在
解密的证书部署在
验证签名的证书部署在
配置BizTalk Parties
Fabrikam BizTalk配置
Parties的配置非常关键,Party的意思是你的合作伙伴和你通讯的一方
在Fabrikam BizTalk新建一个Contoso的Party,这里不用傻呼呼再一个Fabrikam。
制定以下发送端口
这样发送端口(SendToContoso)就可以读取这个party配置的属性写入到http的上下文中一起post到远程地址实现通讯了
配置AS2 Properties
对于Fabrikam来说Contoso就是接收放,因此我们这里只需要配置[Party as AS2 Message Receiver] Fabrikam出站的消息需要加签/加密。AS2-From/AS2-To定义好。
Request MDN就是类似一个ACK,但HTTP/HTTPS本身就有request/response,如果调用时候会立即返回http错误代码401,500,所以一般不需要配置。
Contoso BizTalk配置
在Contoso BizTalk Parties只需要见一个Fabrikam。Fabrikam对于Contoso来说就是发送方
配置验证签名的Fabrikam导出的公钥的证书
配置AS2 Properties
默认即可
这样就配置完成了
测试
在Fabrikam BizTalk新建一个接收端口从文件目录接收,SendToContoso发送端口地址填写对方的接收网址。
Contoso BizTalk 新建一个http接收端口接收Fabrikam Post过来的数据并且保存到文件目录下
OK,完成了希望对初次使用BizTalk开发AS2项目的有所帮助。需要支持的请留言。