2016-08-08 115 views
1

我是ssl和openssl的新手。我正在嘗試使用.cer文件生成curl請求(不使用-k或-insecure標誌)。 產生.pem文件後,我試着發出POST請求的方式如下: 捲曲--cacert certificate.pem -XPOST「https://server_ip:server_port?obj1=okay使用.cer的捲曲請求

當我使用我的服務器IP地址,我得到的錯誤信息: curl:(51)無法與對等方安全通信:請求的域名與服務器的證書不匹配。

如果我使用localhost.localdomain而不是server_ip,則會正確生成請求。

我知道ssl證書只能證明一個主機名。有沒有辦法將主機名更改爲服務器的IP地址而不是localhost.localdomain?

謝謝

回答

0

如果我改用SERVER_IP的的localhost.localdomain,要求正確生成。

您必須使用頒發證書的主機名訪問主機。除了使用-insecure之外,實際上並沒有太多解決方法,因爲您已經指定了您不想執行的操作。

我知道ssl證書只能證明一個主機名。

大多數用戶代理和幾乎所有的瀏覽器都支持主題備用名稱,它允許您指定很多。瀏覽器通常會讀取前100個SAN。 SAN甚至可以支持IP地址。

有沒有辦法將主機名更改爲服務器的IP地址而不是稱作localhost.localdomain

通常是通過DNS來完成。但是,由於它看起來像是在嘗試使用環回,因此您可能只需編輯您的HOSTS文件就可以包含任何想要指向環回地址的名稱。

+0

謝謝vscjones。我可以按照你的建議編輯/ etc/hostname文件來解決這個問題。刪除localhost.localdomain並將其替換爲實際服務器的IP。 –