Создание самоподписанного SSL-сертификата
Ранее я уже говорил о сертификате для вебсервера, сегодня же потребовался сертификат самоподписанный (или как их еще называют — самозаверенный сертификат), проще говоря сгенерированный своими руками.
Приступим:
1 2 |
mkdir /etc/apache2/ssl cd /etc/apache2/ssl |
На задаваемые вопросы стараемся отвечать честно 😳
1 2 |
openssl genrsa -out cert.key 2048 openssl req -x509 -new -key cert.key -days 365 -out cert.pem |
Теперь необходимо прописать путь к нашему сертификату, открываем конфиг Apache:
1 |
nano /etc/apache2/sites-available/default-ssl.conf |
Производим правки:
1 2 3 4 5 6 |
#SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on SSLProtocol all -SSLv2 SSLCertificateFile /etc/apache2/ssl/cert.pem #Путь к сертификату SSLCertificateKeyFile /etc/apache2/ssl/cert.key #Путь к ключу |
Включаем модули:
1 2 3 |
sudo a2enmod ssl sudo a2enmod headers sudo a2ensite default-ssl |
Но тут может возникнуть ошибка при перезапуске Apache:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/etc/apache2/ssl# systemctl status apache2.service ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: failed (Result: exit-code) since Tue 2018-02-06 22:58:04 MSK; 2min 37s ago Process: 1654 ExecStop=/usr/sbin/apachectl stop (code=exited, status=1/FAILURE) Process: 1871 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE) Main PID: 821 (code=exited, status=0/SUCCESS) systemd[1]: Starting The Apache HTTP Server... apachectl[1871]: AH00526: Syntax error on line 27 of /etc/apache2/sites-enabled/default-ssl.conf: apachectl[1871]: SSLCertificateFile takes one argument, SSL Server Certificate file ('/path/to/file' - PEM or DER encoded apachectl[1871]: Action 'start' failed. apachectl[1871]: The Apache error log may have more information. systemd[1]: apache2.service: Control process exited, code=exited status=1 systemd[1]: Failed to start The Apache HTTP Server. systemd[1]: apache2.service: Unit entered failed state. systemd[1]: apache2.service: Failed with result 'exit-code'. ...skipping... |
Как видно из ошибки, у нас проблема со строкой 27, а в ней наши пути к сертификату. Проблема оказалось простой, убираем комментарии и запускаем спокойно Apache. Конечно теперь при обращении через https браузеры будут ругаться, но работать все равно будет.