2016-12-29 1273 views
4
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 90d2c018-73d1-324b-b121-a162cf870ac0' 'https://172.17.0.1:8243/V1.0.2/stock/getNA?name=te' 

終端提示如何解決「證書使用者名稱與目標主機名稱不符」的錯誤?

「捲曲:(51)SSL:證書主題名(本地主機)不匹配目標主機名稱 '172.17.0.1' 」

Howerver,後我將「172.17.0.1」更改爲「localhost」,它工作並得到了結果。

爲什麼?是不是有什麼地方錯誤的配置? 同時,http_access.log中沒有登錄。

回答

2

當ssl握手發生時,客戶端將驗證服務器證書。在驗證過程中,客戶端將嘗試將證書的通用名稱(CN)與URL中的域名進行匹配。如果兩者不同,主機名稱驗證將失敗。在你的情況下,證書有CN作爲本地主機,當你嘗試使用IP地址調用時,它會失敗。當您創建的證書,你可以有單獨的主機名/多個主機名/通配符主機名稱爲CN值

詳情 https://tersesystems.com/2014/03/23/fixing-hostname-verification/ https://support.dnsimple.com/articles/what-is-common-name/

+0

然後,官方的API控制檯可以成功執行curl命令。 我只是將其作爲官方步驟並將wso2carbon.jks更改爲.pem文件並將.pem文件的內容複製到/etc/ssl/certs/ca-certificates.crt。然後,以上是令人興奮的。我想知道爲什麼它不起作用,即使它們都是相同的。 – mike

+0

如果我生成有新主機名的證書,我該如何使用它?不是這樣的:我將證書放入ca-certification.crt中,並將.pem證書更改爲jks並追加.jks文件的內容到API MANAGER的wso2carbon.jks? – mike

2

默認WSO2證書的CNlocalhost。因此,當您發送請求時,您必須使用localhost作爲主機名。否則,主機名驗證失敗。如果您想使用任何其他主機名,那麼您應該使用該主機名生成一個證書,正如Jena所述。

+0

然後,官方的API控制檯可以成功執行curl命令。我只是將其作爲官方步驟並將wso2carbon.jks更改爲.pem文件並將.pem文件的內容複製到/etc/ssl/certs/ca-certificates.crt。然後,以上是令人興奮的。我想知道爲什麼它不起作用,即使它們都是相同的 – mike

+0

如果我生成有新主機名的證書,我該如何使用它?是不是這樣的:我把證書放在ca-certification.crt中並且改變將.pem證書添加到jks中,並將.jks文件的內容添加到API MANAGER的wso2carbon.jks中? – mike

+0

是否有我用IP地址調用的地址?@Bhathiya – mike

0

這可能很久以前。但我確實有這個問題,並得到了解決。我希望這會幫助別人:

我請求URI像「http://some.example」,但對於HTTPS的VAR被設置爲「1」

0

我不得不嘗試後,我從一個git目錄拉時,這個問題'd添加了一個新的SSH密鑰,並且我的git repo移動了。在爭吵中,git的CN變得困惑。我的解決方案是刪除git目錄並通過ssh重新克隆它。正如其他用戶暗示的那樣,您無法更改網站證書的CN,因此您必須更改計算機上存在錯誤CN的設置,或者避免使用https(並像我一樣使用ssh)。

相關問題