如何解决“证书主题名称与目标主机名不匹配”的错误?

时间:2016-12-29 09:45:09

标签: wso2 wso2esb wso2-am wso2carbon api-manager

  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'

终端提示

  

“curl:(51)SSL:证书使用者名称(localhost)与目标主机名”172.17.0.1“不匹配   “

Howerver,在我将“172.17.0.1”更改为“localhost”后,它工作并获得了结果。

为什么?是不是有错误的配置? 同时,http_access.log中没有登录。

4 个答案:

答案 0 :(得分:4)

当ssl握手发生时,客户端将验证服务器证书。在验证过程中,客户端将尝试将证书的公用名(CN)与URL中的域名相匹配。如果两者都不同,主机名验证将失败。在您的情况下,证书将CN作为本地主机,当您尝试使用IP地址进行调用时,它将失败。创建证书时,您可以将单个主机名/多个主机名/通配符主机名作为CN值

了解更多详情 https://tersesystems.com/2014/03/23/fixing-hostname-verification/ https://support.dnsimple.com/articles/what-is-common-name/

答案 1 :(得分:2)

默认wso2证书的

CNlocalhost。因此,发送请求时必须使用localhost作为主机名。否则,主机名验证失败。如果你想使用任何其他主机名,你应该生成一个带有该主机名的证书,正如耶拿提到的那样。

答案 2 :(得分:1)

这可能很久以前了。但实际上我遇到了这个问题并得到了解决。我希望这会对某人有所帮助:

我正在请求类似“http://some.example”的URI,但HTTPS的var设置为“1”

答案 3 :(得分:0)

我在添加新的SSH密钥并且我的git repo移动后尝试从git目录中拉出来时遇到了这个问题。在战斗中,Git的CN很困惑。我的解决方案是删除git目录并通过ssh重新克隆它。正如其他用户所暗示的那样,您无法更改网站证书的CN,因此您必须更改计算机上具有错误CN的设置,或者避免使用https(并像我一样使用ssh)。