Настройка файла виртуального Хоста
sudo mv /etc/apache2/sites-available/default-ssl.conf
/etc/apache2/sites-available/man-db.com-ssl.conf
Настоящее имя домена должно соответствовать значению параметров:
ServerName | ServerAlias | DocumentRoot
sudo vim /etc/apache2/sites-available/man-db.com-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName man-db.com
ServerAlias www.man-db.com
...
DocumentRoot /var/www/man-db.com
...
</VirtualHost>
</IfModule>
Установка сервиса certbot
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-apache
Генерация сертификатов
sudo certbot --apache -d man-db.com -d www.man-db.com
"Сухая" проверка активности авто-обновления сертификатов и тест ошибок.
sudo certbot renew --dry-run
Настройка файла заданий в cron для certbot (создаётся сам после генерации сертификата)
sudo touch /var/log/certbot-renew.log
sudo chmod 666 /var/log/certbot-renew.log
cat /etc/cron.d/certbot
…
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew >> /var/log/certbot-renew.log
После генерации сертификата Файл виртуального Хоста будет иметь следующий вид:
sudo vim /etc/apache2/sites-available/man-db.com-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName man-db.com
ServerAlias www.man-db.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/man-db.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]"nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]"ssl-unclean-shutdown
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/man-db.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/man-db.com/privkey.pem
</VirtualHost>
</IfModule>
sudo apache2ctl configtest
sudo a2enmod ssl
sudo a2ensite man-db.com-ssl
sudo service apache2 restart
Привязывание сертификатов к системе
sudo mkdir /etc/apache2/ssl
Загружаем купленные сертификаты:
apache.key
apache.crt
в папку /etc/apache2/ssl/
Настройка файлов виртуальных Хостов
sudo vim /etc/apache2/sites-available/man-db.com-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName man-db.com
ServerAlias www.man-db.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/man-db.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
sudo apache2ctl configtest
sudo a2enmod ssl
sudo a2ensite man-db.com-ssl
sudo service apache2 restart