如何使用事务码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的原创文章,请关注公众号"汪子熙":
- 如何使用HttpURLConnection发起这http请求
- Https与Http,SSL,DevOps, 静态代码分析工具,RFID, SSH, 非对称加密算法(使用最广泛的一种是RSA), 数字签名, 数字证书
- ABAP--如何使用REUSE_ALV_GRID_DISPLAY函数删除内表数据(样例代码,感谢依风提供)
- DB2在导入数据时,如果数据量过大,出现事务日志满的错误(Database transaction log is full)该如何解决,commitcount使用
- 如何使用VSTS工具来分析软件的代码和性能?
- ABAP--如何使用REUSE_ALV_GRID_DISPLAY函数删除内表数据(样例代码,感谢依风提供)
- asp.net 事务的处理,dts 的设置,asp.net三种事务处理方法,三层架构,微软企业库,动软生成器生成的代码下如何使用事务
- .NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇)
- ABAP--如何使用CL_SALV_TABLE 的代码样例(2004以后版本)
- HTTP 403.4 - 禁止访问:需要使用 SSL 查看该资源”错误
- 【Android学习笔记】如何使用Eclipse在Android项目中调用C/C++代码,及遇到的错误解决方法
- 一个典型的事务使用错误分析
- 如何使用foxmail进行新建事务和发起会议
- .NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇)
- ABAP--如何使用CL_SALV_TABLE 的代码样例(2004以后版本)
- 通过java,如何对代码里发起的http请求进行抓包?
- ABAP--如何使用CL_SALV_TABLE 的代码样例(2004以后版本)
- .NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇)
- ABAP--如何使用CL_SALV_TABLE 的代码样例(2004以后版本)
- ABAP--如何使用REUSE_ALV_GRID_DISPLAY函数删除内表数据(样例代码,感谢依风提供)