當我用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的原創文章,請關注公衆號"汪子熙":