当我用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.
只有这一个错误,或许您以为很难找到问题根源。 url
下面是用事务码SMICM找出问题根源。Goto->Trace Level->Set设置跟踪级别: 3d
设置成最高的3级: 日志
而后点Trace File->Reset, 把到目前为止生成的跟踪文件清空,这样再重现HTTP错误以后生成的日志文件尺寸较小,便于分析: code
从新执行引发HTTP错误的ABAP程序,而后回到事务码SMICM, 选择Trace File->Display All: blog
而后把显示出来的trace文件保存到本地,就能够开始分析了。 事务
查看日志文件,很快就在里面发现了问题根源,由于Netweaver服务器上缺乏c4c.saphybriscloud.cn对应的SSL证书。get
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=USio
在浏览器里打开c4c.saphybriscloud.cn,把certificate导出,再用事务码STRUST导入到Netweaver服务器便可解决这个问题。Jerry会另外写一篇文章介绍证书导入的详细步骤。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":