【实测避坑】SAP PI/PO系统 配置证书调用https地址

博主内容在此链接原文上修改,避免初次配置https的时候踩到大坑,目前发现知乎,CSDN等相关文章中均未提及,博主踩坑花了2天时间才找到原因,未避免后续人员踩坑,在此文中特别补充。

在原文的基础上进行了增加,避免证书导入以后还报错iaik.security.ssl.SSLCertificateException: Peer certificate rejected by ChainVerifier

大坑,第一次配置https一定要导入根证书和二级证书(下面第四步骤中写到),不然识别报错。

源链接:https://zhuanlan.zhihu.com/p/405832235

官方说明:https://userapps.support.sap.com/sap/support/knowledge/en/2321147

Below are the 3 certificates which you need to maintain in your SAP PI:

  1. Root Certificate  

  2. intermediate Certificate

  3. Leaf certificate

为了验证http/https 的差异点,先使用http地址配置PO的接口,并且通过SOAPUI测试验证通过.
图示接口是PO调用目标系统的webservice 服务, 对方发布了两个地址 http 及https.
使用http配置通道,测试调用成功.

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第1张图片

使用https
调整成https地址,感受差异.
01
调整通道配置
调整目标通道配置, 修改使用https 地址

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第2张图片

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第3张图片

02
再次测试
在没有任何其它操作的情况下, 使用相同的数据再次调用接口,SOAPUI中报500错误.

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第4张图片

03
监控日志
到PO监控中查看
能看到如下报错信息
SOAP: Error occurred: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: Failed to get the input stream from socket: iaik.security.ssl.SSLCertificateException: Peer certificate rejected by ChainVerifier

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第5张图片

获取证书
获取对方的证书文件(该文件可以通过浏览器访问调用地址, 另存证书获取.
在chrome浏览器点击网站左边的锁,查看证书. 复制到文件.后续一步步执行可以导出一个证书文件 文件后缀 .cer
划重点(大坑):需要查看证书路径,如果路径有三层,需要把三个证书都导出,导入到 TrustedCAs节点

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第6张图片

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第7张图片

导入证书
用管理员账号登陆PO, 把证书文件导入到系统中.
01
进入证书管理页面

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第8张图片

02
找到TrustedCAs节点
必须导入到TrustedCAs 节点中.
选中该节点, 在导入条目,在弹窗中输入文件信息,完成证书的导入过程

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第9张图片

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第10张图片

03
查看导入的证书
导入后,可以看到证书的信息

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第11张图片

重新测试接口
导入后, 立即重新测试接口, 此时还是http 500的错误(图一). 尝试需要重新启动通道(图二),让证书生效后, 再重新测试接口调用,成功(图三)

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第12张图片

图一

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第13张图片

图二

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第14张图片

图三
注意事项
配置https地址的通道,需要注意以下事项
01
通道配置
通道的 client certificate authentication 复选框 use client certificates 会误导配置人员,该复选框的勾选后, 必须选择一个private key 证书. 而之前导入的证书是CERTIFICATE. 无法选择使用. 无需勾选该标记

02
证书导入节点
证书必须导入到TrustedCAs中

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第15张图片

03
重启通道
证书导入后,必须重启通道,可以通过修改激活通道的方式, 也可以在通信通道监控器中停止,启动通道

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第16张图片

04
证书有效期
如果导入的证书过期.也无法使用. 过期的证书状态是红灯. 可以在证书明细中看到有效期限

【实测避坑】SAP PI/PO系统 配置证书调用https地址_第17张图片

05
端口443
注意默认端口443的使用,浏览器中不显示默认的端口,在实际配置url中需要添加这些默认端口. 但是有些系统发布的地址就是无需使用443端口,这个就需要和对方确认了.
总结
PO调用目标系统的https地址时,需要先导入对方的系统的证书.通道地址调整为https地址即可.
因为PO可以导入多个证书,通道配置中又无需指定证书文件,不太理解PO底层机制怎么正确使用特定的证书.
只能理解为:PO会尝试TrustedCAs中的所有证书,直到联通并标记下来,后续则通过先前的标记确定使用正确的证书.

你可能感兴趣的:(SAP,https,服务器,网络协议)