1. 程式人生 > >如何使用事務碼SMICM分析ABAP程式碼發起的HTTP請求的錯誤ICM_HTTP_SSL_PEER_CERT_UNTRUSTED

如何使用事務碼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的原創文章,請關注公眾號"汪子熙":