如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误ICM_HTTP_SSL_PEER_CERT_UNTRUSTED
当我用CL_HTTP_CLIENT往一个外网的url发请求时,遇到错误:ICM_HTTP_SSL_PEER_CERT_UNTRUSTED
错误是从这段ABAP代码里抛出来的:
CALL METHOD lo_http_client->get_last_error
IMPORTING
code = lv_sysubrc
message = ev_error_message.
"BREAK-POINT.
WRITE: / 'error: ' , ev_error_message.

只有这一个错误,或许您觉得很难找到问题根源。

下面是用事务码SMICM找出问题根源。Goto->Trace Level->Set设置跟踪级别:

设置成最高的3级:

然后点Trace File->Reset, 把到目前为止生成的跟踪文件清空,这样再重现HTTP错误之后生成的日志文件尺寸较小,便于分析:

重新执行引起HTTP错误的ABAP程序,然后回到事务码SMICM, 选择Trace File->Display All:

然后把显示出来的trace文件保存到本地,就可以开始分析了。

查看日志文件,很快就在里面发现了问题根源,因为Netweaver服务器上缺少c4c.saphybriscloud.cn对应的SSL证书。
Verification result header:
[Thr 140133716416256] Verification errors
[Thr 140133716416256] The chain of certificates is incomplete or untrusted, missing certificate of
[Thr 140133716416256] CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
[Thr 140133716416256] Verified certificate:
[Thr 140133716416256] Subject: CN=*.c4c.saphybriscloud.cn, OU=SAP Cloud Managed Services, O=SAP, L=Walldorf, SP=Baden-Wuerttemberg, C=DE
[Thr 140133716416256] Issuer: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US
在浏览器里打开c4c.saphybriscloud.cn,把certificate导出,再用事务码STRUST导入到Netweaver服务器即可解决这个问题。Jerry会另外写一篇文章介绍证书导入的详细步骤。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":

如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误ICM_HTTP_SSL_PEER_CERT_UNTRUSTED的更多相关文章
- ABAP常用事务码
开发----------------------------------------------- SE51 屏幕制作 SE91 MESSAGE OBJECT SE80 对象浏览器(可以建开发类 ...
- [SAP ABAP开发技术总结]ABAP常用事务码
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 【ABAP系列】SAP 使用事务码DBCO实现SAP链接外部数据库以及读取例程
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 使用事务码DBCO实现S ...
- Vue.js 源码分析(一) 代码结构
关于Vue vue是一个兴起的前端js库,是一个精简的MVVM.MVVM模式是由经典的软件架构MVC衍生来的,当View(视图层)变化时,会自动更新到ViewModel(视图模型),反之亦然,View ...
- GCN代码分析 2019.03.12 22:34:54字数 560阅读 5714 本文主要对GCN源码进行分析。
GCN代码分析 1 代码结构 . ├── data // 图数据 ├── inits // 初始化的一些公用函数 ├── layers // GCN层的定义 ├── metrics // 评测指标 ...
- SAP事务码 一
SE80 -- edit source code. SE24 -- class create or display. SFP -- created and maintained independent ...
- zookeeper源码分析之四服务端(单机)处理请求流程
上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...
- 用ABAP代码读取S/4HANA生产订单工序明细
在S/4HANA事务码CO03显示的Production Order里,我希望用ABAP代码显示出该订单的operation(工序)ID,描述和状态Status,如下图所示: 很简单的几行ABAP代码 ...
- Django-session中间件源码简单分析
Django-session中间件源码简单分析 settings里有关中间件的配置 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddlew ...
随机推荐
- FileLoadException: 未能加载文件或程序集"aliyun-net-sdk-cf, Version=1.0.0.0,
清理缓存解决 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files C:\Windows\Microsoft. ...
- SHA_1计算消息摘要
/** * SHA_1计算消息摘要 * @param bytes 待计算数据 * @return */ public static String SHA_1(byte[] bytes) { Strin ...
- Appium appium 基础之键盘处理
方法1 AppiumDriver实现了在上述功能,代码如下(java版本) driver.sendKeyEvent(66);方法2 HashMap keycode = new HashMap();ke ...
- 使用PyCharm实现远程编写并调试代码
使用PyCharm实现远程编写并调试代码 版权声明:本文为博主原创文章,转载请注明出https://www.cnblogs.com/wenqiangit/p/9771947.html 因为工作中使用的 ...
- 人工智能和机器学习 AI&ML howto
我关心的AI.ML的分支领域: 我的博客:Deep Learning 和 Knowledge Graph howto (有关DL&KG的资料都在这里) https://www.cnblogs. ...
- 性能测试工具LoadRunner17-LR之Controller windows系统资源性能常用计数器
1.System %Total Processor Time 该计数值用于体现服务器整体的处理器利用率,对多处理器而言,该计数值体现的是所有CPU的平均利用率.如果该值的数值持续超过90%,则可以说明 ...
- Object.create 以及 Object.setPrototypeOf
第一部分 Object.crate() 方法是es5中的关于原型的方法, 这个方法会使用指定的原型对象以及属性去创建一个新的对象. 语法 Object.create(proto, [ properti ...
- rsync 命令中的路径斜线
rsync命令大家都知道,但是其中的一个小细节比较容易被忽略,那就是 路径结尾的 "/" ,在路径的结尾有没有斜线,结果是大不同的.现举例说明: 假设现有两个目录,一个名为sour ...
- Homemade Script Language: RED
Made by C, named after RED(RecovEr from SaDness) 欢迎批评 :)
- Qt 学习(4)
Qt UI 文件机制 使用 Qt 设计界面程序时,若界面是静态的,可以借助 Qt Designer 进行所见即所得的界面设计.设计好界面后,在界面类中对 ui 对象进行操作非常方便. QtCreato ...