Задача: привязать к сайту SSL-сертификат и использовать защищенное соединение HTTPS.
-
- Преимущества использования SSL-сертификата:
- данные между клиентом и сервером (явки, пароли) передаются по защищенному соединению HTTPS;
- улучшение ранжирования Гуглом;
- URL-сайта подсвечивается зеленым значком в адресной строке браузера - эстетическое наслаждение.
В качестве центра проверки подлинности сертификата будет использоваться бесплатный сервис Let's Encrypt.
Внимание! Нижеописанный метод не действует с 2021 года. Использовать Certbot.
Настройка веб-сервера Apache:
sudo a2enmod ssl
sudo a2ensite default-ssl
Получение SSL-сертификата от Let's Encrypt:
sudo apt-get install git
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
cd /opt/letsencrypt
sudo -H ./letsencrypt-auto certonly --standalone -d site.com -d www.site.com
В директории /etc/letsencrypt/live должна появиться директория site.com, содержащая новые сертификаты.
Если появляется ошибка "Problem binding to port 80: Could not bind to IPv4 or IPv6.", остановить службу Apache, повторить последнюю команду и запустить Apache заново.
Настройка виртуального хоста на порту 443:
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/site.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/site.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/site.com/fullchain.pem
Дополнительно можно настроить переадресацию HTTP -> HTTPS. В дефолтный виртуальный хост добавляем:
Redirect / https://www.site.com/
Перезапуск Apache.
Настройка автоматического продления SSL-сертификата Let's Encrypt - добавляем в crontab задание:
0 0 1 * * root service apache2 stop && /opt/letsencrypt/letsencrypt-auto renew && service apache2 start