1. 工具和安装包准备
秘钥生成工具 :链接:https://pan.baidu.com/s/1C3fnlkpu36mmpu8Y1fDnUA 密码:pg4k
openas2 :链接:https://pan.baidu.com/s/132HSw7W7WBWxOZ_ilemOTg 密码:qp14
1. as2服务的介绍
openas2/
├── bin/ # 存放可执行脚本的目录
│ ├── start-openas2.sh # 启动脚本(Linux)
│ └── start-openas2.bat # 启动脚本(Windows)
├── config/ # 存放配置文件的目录
│ ├── partners.xml # 存放合作伙伴信息的配置文件
│ ├── certificates/ # 存放证书的目录
│ └── ... # 其他配置文件
├── logs/ # 存放日志文件的目录
├── lib/ # 存放依赖库的目录
└── data/ # 存放数据的目录
├── pendinginfo/ # 存放待处理信息的目录
├── pendingmdn/ # 存放待处理MDN的目录
└── ... # 其他数据目录
对于OpenAS2,有一个基本的配置步骤,我将尽可能详细地进行说明:
根据你的实际需求修改这些配置文件。例如,你可能需要添加新的合作伙伴、更改日志级别或者更改数据库配置等。
1. 启动
在`bin`目录下,有两个启动脚本:`start-openas2.sh`和`start-openas2.bat`。如果你的服务器运行在Linux上,使用`sh`脚本,如果运行在Windows上,使用`bat`脚本。在命令行中运行对应的脚本即可启动OpenAS2。
2. 验证
在你启动OpenAS2后,你可以查看`logs`目录下的日志文件来验证OpenAS2是否正常运行。你也可以通过发送AS2消息来进行测试。
3. 生成密钥和导入对方密钥
生成秘钥示例,以图形工具为示例,
1.下载解压 portecle-1.9
2.打开portecle.jar
3.生成秘钥库,及秘钥对
3.1 点击 file --new keystore type
3.2 .选择加密方式, 填写秘钥发布者信息,秘钥、加密方式想了解更多,请参考安装介绍里的其它两篇博客。
3.3.设置别名, 注意别名需要 在配置文件中使用。
3.4.把秘钥对 导出证书,发送给 “partner” ,(另一台模拟电脑)
3.5. 选择,路径,填写文件名 ,导出成功,发送给 合作伙伴,对方需要导入到秘钥库。
3.7.找合作伙伴索取证书 。导入到秘钥库中
4.将对方的证书导入到秘钥库中,并保存秘钥库,到openas2 config目录下。
导入秘钥对成功之后,点击保存 秘钥库,选择路径。此时需要,需要设置秘钥库密码,最好与密钥对密码一致。
注意:秘钥库、使用 p12 格式,如果.cer,或其它格式推荐转换成 p12格式
4、配置文件修改,(重点)
根据注释说明修改配置
<partnerships>
<!-- as2_id 我方的as2_id 。要告诉对接方的-->
<!-- x509_alias 生成密钥时候的名字 -->
<partner name="MyName"
as2_id="MyName_OID"
x509_alias="MyName"
email="as2msgs@openas2a.com"/>
<!-- as2_id 对接方的as2_id duijiefang 一般对方提供给你-->
<!-- x509_alias 导入对方密钥时候的名字 -->
<partner name="duijiefang"
as2_id="duijiefang"
x509_alias="duijiefang"
email="as2msgs@openas2b.com"/>
<partnership name="MyName-to-duijiefang">
<sender name="MyName"/>
<receiver name="duijiefang"/>
<attribute name="protocol" value="as2"/>
<attribute name="content_transfer_encoding" value="8bit"/>
<attribute name="compression_type" value="ZLIB"/>
<attribute name="subject" value="From MyName to duijiefang"/>
<attribute name="mdnsubject" value="Your requested MDN response from $receiver.as2_id$"/>
<attribute name="as2_url" value="http://对接方地址/enterprise/as2"/>
<attribute name="as2_mdn_to" value="edi@openas2b.org"/>
<!--signed-receipt-protocol=optional, pkcs7-signature:
- signed-receipt-protocol: 指定MDN的签名协议,此处为可选项
- pkcs7-signature: 使用PKCS#7格式进行MDN的签名
signed-receipt-micalg=optional, SHA256:
- signed-receipt-micalg: 指定MDN的消息摘要算法,此处为可选项
- SHA256: 使用SHA-256算法计算MDN的消息摘要
-->
<attribute name="as2_mdn_options" value="signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, SHA256"/>
<attribute name="encrypt" value="3DES"/> <!-- 加密算法:3DES -->
<attribute name="sign" value="SHA1"/> <!-- 签名算法:SHA-1 -->
<attribute name="resend_max_retries" value="3"/> <!-- 重新发送的最大尝试次数:3 -->
<attribute name="prevent_canonicalization_for_mic" value="false"/> <!-- 是否允许规范化以计算消息摘要:false -->
<attribute name="no_set_transfer_encoding_for_signing" value="false"/> <!-- 在签名过程中是否设置传输编码:false -->
<attribute name="no_set_transfer_encoding_for_encryption" value="false"/> <!-- 在加密过程中是否设置传输编码:false -->
<attribute name="rename_digest_to_old_name" value="false"/> <!-- 是否重命名消息摘要为旧的名称:false -->
<attribute name="remove_cms_algorithm_protection_attrib" value="false"/> <!-- 是否删除CMS算法保护属性:false -->
</partnership>
<partnership name="duijiefang-to-MyName">
<sender name="duijiefang"/>
<receiver name="MyName"/>
<attribute name="protocol" value="as2"/>
<attribute name="content_transfer_encoding" value="8bit"/>
<attribute name="subject" value="From duijiefang to MyName"/>
<attribute name="as2_url" value="http://我方地址:10080/"/>
<attribute name="as2_mdn_to" value="edi@openas2a.org"/>
<attribute name="as2_mdn_options" value="signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, SHA256"/>
<attribute name="encrypt" value="3DES"/>
<attribute name="sign" value="SHA256"/>
<attribute name="prevent_canonicalization_for_mic" value="false"/>
<attribute name="remove_cms_algorithm_protection_attrib" value="false"/>
</partnership>
</partnerships>