Я создал сертификаты, используя следующую команду
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