BizTalk for AS2 加密/加签传输练习

BizTalk for AS2 加密/加签传输练习

 

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本证书,一本给Fabrikam,一本给Contoso;然后导出并交换公钥。

申请证书最简单的方式还是自己创建一个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证书的配置参见

http://msdn.microsoft.com/zh-cn/library/bb728096.aspx

 

用于签名的证书部署在

解密的证书部署在

验证签名的证书部署在

配置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项目的有所帮助。需要支持的请留言。

posted @ 2012-10-11 10:14  阿新  阅读(2190)  评论(2编辑  收藏  举报