我有一个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 SSL创build域来testing其他服务器中的相同场景,并且都有相同的问题。 当使用SSLlabs ssllabs-checker进行检查时,它能够将domain2证书详细信息与domain1一起获得。即使domain1 Grade也是A.在所有其他检查站点中也是安全的。
如果我使用SSLlabs检查domain2,它将获取同一服务器中的任何其他域证书。 (但是如果有域A,B,C,D其中一个域的SSL检查将只提取一个证书,这不是问题,所有其他人都会遇到这个问题。
附上截图。 (一个长的完整页面截图)。 我认为这将澄清的情况下:(
截图
**我不能在应用程序中使用不安全的Curl请求,而忽略这个问题并使curl请求成功。 如果有人有这个想法,请帮助。 我花了好几个小时,还是…
上面的问题是Wordpress插件,所以无法添加具体的参数随着curl。 (其来自WP核心)
提前致谢。
正在使用的curl版本似乎缺less基本的SNI支持。 当多个使用SSL的域被托pipe在相同的IP地址上时,SNI是必需的。
你基本上有三个select:
-H "Host: domain1.com"