原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
PO(/PI)是SAP公司的一个中间件产品,用来辅助连接SAP系统与外围系统. (当然外围系统之间也可以使用PO).
为了传输数据的安全性考虑, 客户会要求系统发布的服务必须通过https请求.
PO/PI 使用通道类型是 SOAP Receiver 或REST Receiver时. 如果对方提供的地址是https 地址,需要在PO中引入证书.
**本文主要介绍PO引入外部证书的相关注意事项**
**
**
二
使用http
为了验证http/https 的差异点,先使用http地址配置PO的接口,并且通过SOAPUI测试验证通过.
图示接口是PO调用目标系统的webservice 服务, 对方发布了两个地址 http 及https.
使用http配置通道,测试调用成功.
三
使用https
调整成https地址,感受差异.
_**01** _
**调整通道配置**
调整目标通道配置, 修改使用https 地址
_**02** _
**再次测试**
在没有任何其它操作的情况下, 使用相同的数据再次调用接口,SOAPUI中报500错误.
_**03** _
**监控日志**
到PO监控中查看
能看到如下报错信息
iaik.security.ssl.SSLCertificateException: Peer certificate rejected by
ChainVerifier
四
获取证书
获取对方的证书文件(该文件可以通过浏览器访问调用地址, 另存证书获取.
在chrome浏览器点击网站左边的锁,查看证书. 复制到文件.后续一步步执行可以导出一个证书文件 文件后缀 .cer
五
导入证书
用管理员账号登陆PO, 把证书文件导入到系统中.
_**01** _
**进入证书管理页面**
_**02** _
**找到TrustedCAs节点**
**必须导入到TrustedCAs 节点中.**
选中该节点, 在导入条目,在弹窗中输入文件信息,完成证书的导入过程
_**03** _
**查看导入的证书**
导入后,可以看到证书的信息
六
重新测试接口
导入后, 立即重新测试接口, 此时还是http 500的错误(图一). 尝试需要重新启动通道(图二),让证书生效后, 再重新测试接口调用,成功(图三)
图一
图二
图三
七
注意事项
配置https地址的通道,需要注意以下事项
_**01** _
**通道配置**
通道的 client certificate authentication 复选框 use client certificates
会误导配置人员,该复选框的勾选后, 必须选择一个private key 证书. 而之前导入的证书是CERTIFICATE. 无法选择使用.
**无需勾选该标记**
_**02** _
**证书导入节点**
证书必须导入到TrustedCAs中
_**03** _
**重启通道**
证书导入后,必须重启通道,可以通过修改激活通道的方式, 也可以在通信通道监控器中停止,启动通道
_**04** _
**证书有效期**
如果导入的证书过期.也无法使用. 过期的证书状态是红灯. 可以在证书明细中看到有效期限
_**05** _
**端口443**
注意默认端口443的使用,浏览器中不显示默认的端口,在实际配置url中需要添加这些默认端口.
但是有些系统发布的地址就是无需使用443端口,这个就需要和对方确认了.
八
总结
PO调用目标系统的https地址时,需要先导入对方的系统的证书.通道地址调整为https地址即可.
因为PO可以导入多个证书,通道配置中又无需指定证书文件,不太理解PO底层机制怎么正确使用特定的证书.
只能理解为:PO会尝试TrustedCAs中的所有证书,直到联通并标记下来,后续则通过先前的标记确定使用正确的证书.
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
syjf1976
sharry_xlp
Yannick_Duan 申请进入公众号讨论群