如何在知行之桥EDI系统中定时自动更换交易伙伴AS2证书?
为了保证客户与交易伙伴之间数据传输的安全性,AS2传输协议中,通常会通过一对数字证书对传输数据进行签名和加密。但是证书是有有效期的,在证书到期之前,需要贸易双方及时更换新的证书。
在更新证书时,由于客户通常是和海外合作伙伴进行EDI对接,双方存在时差,无法在同一时间进行人工更换。因此,有客户希望能够在交易伙伴证书到期的时候,定时更换交易伙伴证书。针对这个需求,我们提出两种不同的解决方案,可以实现定时自动更换交易伙伴AS2证书:
方案一 Script端口+自定义脚本
1.首先需要在知行之桥EDI系统的系统设置-证书界面上传需要更新的证书。
2.在工作流界面左侧的基础栏中找到Script端口并拖出,左键单击打开Script端口,在下方的脚本部分输入对应的更换证书脚本。
更换证书脚本(将此脚本中相关信息进行更改,复制在Script端口即可)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<rsb:set attr="http.header:value" value="9z2R1c1z8B0l7g5T9a7z"/>
<!—token-->
<!--Token在系统设置中的用户界面,单击用户,刷新身份认证令牌即可获取-->
<rsb:set attr="as2.connecitor" value="AS21"/>
<!—AS2端口名-->
<rsb:set attr="workspace.value" value="new"/>
<!—工作区-->
<rsb:set attr="cert.value" value="ArcESB.cer.cer"/>
<!—新的证书名-->
<rsb:set attr="http.url" value="http://localhost:8001/api.rsc/connectors"/>
<!—调用接口url-->
<!--调用接口url在API→系统API→资源中的/api.rsc/connectors中获取-->
<!—下面是固定信息-->
<rsb:set attr="http.contenttype" value="application/json"/>
<rsb:set attr="http.header:name" value="x-rssbus-authtoken"/>
<rsb:set attr="http.putdata">{"ConnectorId": "[as2.connecitor]","Workspace": "[workspace.value]","certificate": "[cert.value]"}</rsb:set>
<rsb:call op="httpPut" in="http" out="output" >
</rsb:call>
|
3.打开Script端口的自动化设置界面,在下方的执行间隔中设置需要执行脚本的时间,下图中的设置表示在本月第11天的4:20定时执行自定义脚本。(需要注意的是,此处的时间为24小时制)设置完成后需要将接收勾选,勾选接收后端口将自按计划执行脚本。然接下来点击右上角的保存变更。
到这里就已经配置完成了,通过上述方法即可实现交易伙伴证书的定时自动更换,接下来我们介绍第二种方案。
方案二:Schedule端口+File端口
1.上传新证书至data目录下,需要注意:新证书名称不得与旧证书相同
2.将AS2端口对应文件夹下的port.cfg文件复制出来,修改文件中的Certificate=“new certificate name”(复制出来的文件命名依旧为port.cfg,与原文件名保持一致)
3.在工作流左侧的基础栏中拖出Schedule端口和File端口
4.在Schedule端口的计划部分设置定时时间,例如此处设置在本周五03:45定时发送文件
5.File端口的设置界面中配置AS2端口的data folder,然后与Schedule端口相连即可
6.在File端口的高级设置界面,将复写选项设置为Overwrite
7.最后将修改后的port.cfg文件上传至Schedule端口,端口会根据设置的时间类型定时发送文件
到这里我们方案二的配置就已经全部结束了,我们还可以在File端口After Send添加一个自定义脚本,实现成功更换证书的邮件通知。
邮件通知脚本:
1
2
3
4
5
6
7
|
<arc:set attr="Subject"value="Certificate has been replaced"/>
<!--Subject为发出邮件的标题-->
<arc:set attr="Message"value="The certificate has been replaced,Please check!"/>
<!--Message为邮件的普通文本正文-->
<arc:set attr="To"value="收件邮箱"/>
<!--To为邮件接收地址,如需多个邮箱接收,则需要使用逗号分隔开-->
<arc:call op="appSendEmail"></arc:call>
|
以上为如何在知行之桥EDI系统中定时自动更换交易伙伴AS2 证书的两种不同解决方案,可以根据自己的需求选择合适的方案,如果您想了解更多有关知行之桥EDI系统中关于配置以及更新证书的相关问题,可以参考:如何在知行之桥EDI系统中配置更新证书
了解更多 EDI 信息,请参阅: EDI 是什么?