Я добавил 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
Это ожидаемое поведение браузеров. Эти предупреждения предназначены для того, чтобы отговорить пользователей от посещения этого сайта, потому что браузер не может определить, действительно ли это ожидаемый сертификат для этого сайта или кто-то выдает себя за сайт, как в случае атаки человека в середине. По сути, самозаверяющий сертификат говорит: «Поверьте мне, я правильный сертификат», и нет возможности проверить это утверждение.
Поскольку это ваш самоподписанный сертификат и не принадлежит ни одному центру сертификации, браузеры обязательно выдадут ошибку.
В случае https первым шагом является рукопожатие. В процессе рукопожатия браузер проверяет, находится ли центр сертификации, установленного на сервере, в списке сертификатов браузеров. Поскольку этот сертификат подписан вами, он ни в коем случае не будет в списке браузера.
Тем не менее, если вы работаете локально, вы можете импортировать сертификат в свой браузер, и если в сертификате также указано какое-либо доменное имя, вам необходимо изменить файл хоста, пока он находится в Linux и находится в / etc, а в Windows - в c: \ Windows \ System32 \ Драйверы \ etc \
удачи.... :)