У меня есть установка Plesk с несколькими сайтами. При доступе в браузере Plesk отлично обслуживает соответствующий сертификат SSl.
Но затем, когда я перейду к нему через openssl, используя
openssl s_client -connect mysite.com:443
Я получаю обратно SSL с разных сайтов. Это еще один сайт на сервере, но не для этого домена.
Это ошибка, которую я получаю при использовании этого вызова openssl.
CONNECTED(00000003)
depth=0 /OU=Domain Control Validated/CN=*.example.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.example.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.example.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/OU=Domain Control Validated/CN=*.example.com
i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.go
daddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=
---
Если у вас есть несколько сайтов, использующих отдельные SSL-сертификаты, существует расширение SSL, называемое SNI, которое позволяет клиенту и серверу согласовывать, какое имя хоста следует проверить.
Чтобы s_client мог использовать SNI, вам необходимо указать его в командной строке с опцией -servername
.
Пример:
openssl s_client -connect example.com:443 -servername www.example.com