對這文章發表回應
發表限制: 非會員 可以發表
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項目的有所幫助。需要支持的請留言。
本文參與 騰訊雲自媒體分享計劃,歡迎正在閱讀的你也加入,一起分享。
原文出處:BizTalk for AS2 加密/加签传输练习 - 云+社区 - 腾讯云