Назад | Перейти на главную страницу

apache2 несколько виртуальных хостов с разными ssl не работают

Я создал сертификаты, используя следующую команду

openssl req -new -newkey rsa:2048 -nodes -keyout rrr.key -out rrr.csr

Затем я создал следующий файл ssl-001.conf в папке с доступными сайтами

<VirtualHost _default_:444>
       DocumentRoot /var/www/html/endpoint/
       ServerName safcom.co.ke

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined

       SSLEngine on
       SSLCertificateFile    /home/xxxx/rrr.csr
       SSLCertificateKeyFile /home/xxxx/rrr.key
</VirtualHost>

Затем изменил ports.conf на этот

<IfModule ssl_module>
    Listen 443
    Listen 444
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
    Listen 444
</IfModule>

Затем перезапустил мой сервер, и это не сработало. Я пытаюсь добиться, чтобы мои порты 80 и 443 работали в обычном режиме, но имели дополнительный порт 444 с ssl. Что я делаю не так? Насколько я понимаю, у вас может быть один сертификат на каждый IP-адрес или порт!

Вы создали запрос на подпись сертификата (CSR). Вам нужен либо кто-то, кто подписывает этот запрос (например, центр сертификации), либо вы можете подписать его самостоятельно (но он не будет доверенным, и вы получите предупреждение браузера).

Самоподпись - это довольно простой процесс с openssl:

openssl x509 -in rrr.csr -out rrr.crt -req -signkey rrr.key -days 1001

После этого у вас будет файл с именем rrr.crt. Просто измени rrr.csr в вашей конфигурации на rrr.crt и apache должен начать использовать ваш самозаверяющий сертификат.

См. Также этот пост: https://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl