Самоподписанный сертификат SSL - как они отображаются на клиентах и как их настроить?
Я добавил SSL на веб-сайт (Apache 2.2 с Centos 6), используя самозаверяющий ключ. Chrome, FF и IE отображают следующее:
Хром
Ваше соединение не является частным. Возможно, злоумышленники пытаются украсть вашу информацию с test.example.com (например, пароли, сообщения или кредитные карты).NET:: ERR_CERT_AUTHORITY_INVALID
FF
Ваше соединение не защищено. Владелец test.example.com неправильно настроил свой веб-сайт. Чтобы защитить вашу информацию от кражи, Firefox не подключался к этому сайту.
IE
Есть проблема с сертификатом безопасности этого сайта. Это может означать, что кто-то пытается обмануть вас или украсть любую информацию, которую вы отправляете на сервер. Вы должны немедленно закрыть этот сайт.
Это ожидается? Если нет, то как должен быть настроен сайт. Ниже то, что я сделал.
Apache настроен как:
<VirtualHost *:443>
ServerName test.example.com
DocumentRoot /var/www/test/html
ErrorDocument 404 /error-404.html
SSLEngine on
SSLCertificateKeyFile /etc/pki/tls/private/test_key.pem
SSLCertificateFile /etc/pki/tls/certs/test_crt.pem
<Directory "/var/www/test/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
RewriteEngine On
#Include /var/www/httpd/private.conf
</Directory>
</VirtualHost>
Мои ключи были сгенерированы как:
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -aes-128-cbc -out test_key.pem
# For the following command, left all as default values
openssl req -new -key test_key.pem -sha256 -days 365 -out test_csr.pem
cp test_key.pem test_key.pem.tmp
openssl rsa -in test_key.pem.tmp -out test_key.pem
rm -f test_key.pem.tmp
openssl x509 -req -in test_csr.pem -signkey test_key.pem -sha256 -days 365 -out test_crt.pem
sudo cp test_key.pem /etc/pki/tls/private/test_key.pem
sudo cp test_csr.pem /etc/pki/tls/private/test_csr.pem
sudo cp test_crt.pem /etc/pki/tls/certs/test_crt.pem
rm -f test_key.pem
rm -f test_csr.pem
rm -f test_crt.pem
2 ответа
Это ожидаемое поведение браузеров. Эти предупреждения служат для того, чтобы отговорить пользователей от посещения этого сайта, поскольку браузер не может определить, действительно ли это ожидаемый сертификат для этого сайта или кто-то, выдающий себя за сайт, как у человека, находящегося в середине атаки. По сути, самозаверяющий сертификат гласит: "Поверьте мне, я правильный сертификат", и нет способа проверить это утверждение.
Так как это ваш самозаверяющий сертификат, который не принадлежит никакому центру сертификации, браузеры обязательно выдадут ошибку.
В случае https первым шагом является рукопожатие. В процессе рукопожатия браузер проверяет, есть ли полномочия сертификата, установленного на сервере, в списке сертификатов браузера. Поскольку этот сертификат подписан вами, ни в коем случае он не будет в списке браузера.
Тем не менее, если вы работаете локально, то вы можете импортировать сертификат в браузере, и если в сертификате также указано какое-либо доменное имя, вам нужно изменить файл хоста, пока в Linux он находится в /etc, а в окнах, хранящихся в c:\Windows\System32\Drivers\ и т.д. \
удачи....:)