我在一个ubuntu服务器(16.04)上有多个站点,其中有nginx/1.10.0 + letsencrypt。
SSL在浏览器的外观上工作得很好,很完美。但是,我们的开发人员应用程序正在使用curl请求(使用SSL),它面临的错误为
Update Failed: Download failed. cURL error 51: SSL: certificate subject name 'domain2.com' does not match target host name 'domain1.com'
在使用SSLLABS进行检查时,它显示了A_grade,但它正在加载多个证书(同一服务器中另一个域的证书)。
Certificate #1: RSA 2048 bits (SHA256withRSA)
和
Certificate #2: RSA 2048 bits (SHA256withRSA) No SNI
在第二个证书下,有以下错误。
Common names domain2.com MISMATCH
Trusted No NOT TRUSTED
卷曲错误也是关于第二个域名的。
cURL error 51: SSL: certificate subject name 'domain2' does not match target host name 'domain1'
domain2是完全不同的网站。不知道nginx是如何与domain1一起发送信息的。
此外,我还通过使用Letsencrypt创建域在其他服务器上测试了相同的场景,并且都有相同的问题。在与SSLlabs 检验员进行检查时,它能够获得domain2证书的详细信息以及domain1.S连domain1等级是A的,在所有其他检查站点中也是安全的。
如果我使用domain2检查SSLlabs,它将获取位于同一服务器中的任何其他域证书。(但如果存在域A、B、C、D,其中一个域SSL检查将只获取一个证书)。这不是问题,所有其他人都会有这个问题。)
截图附呈。(一张长长的整页截图)。我认为这会澄清这件事:
**我不能在应用程序中使用不安全的Curl请求,这会忽略这个问题,并使curl请求成功。如果有人对此有想法,请帮忙。我花了很多时间在这件事背后,仍然.
上面的问题是Wordpress插件,所以不能添加特定的参数和卷曲。(来自可湿性粉剂核心)
提前谢谢。
发布于 2017-01-19 05:59:55
使用中的curl版本似乎缺少基本的SNI支持。当带有SSL的多个域托管在同一个IP地址上时,SNI是必要的。
你基本上有三种选择:
-H "Host: domain1.com"
https://serverfault.com/questions/826566
复制