Включаем https в apache:
nano etc/apache2/apache2.conf
Для включения HTTPS, перемещаем курсор в конец конфига и раскомментируем
Include etc/apache22/extra/httpd-ssl.conf
Шаг 1. Установка необходимого ПО
apt-get install git
Шаг 2. Качаем скрипты letsencrypt
cd /usr/local/
git clone h_ttps://github.com/letsencrypt/letsencrypt
переходим в директорию letsencrypt
cd letsencrypt
Шаг 3. Запускаем скрипт генерации сертификата и проверки домена:
./letsencrypt-auto --agree-dev-preview --server \h_ttps://acme-v01.api.letsencrypt.org/directory -a manual auth
Скрипт будет задавать вопросы на которые нужно отвечать утвердительно, так же скрипт запросит адрес почтового ящика для восстановления доступа к сервису в будущем (на ящик будет отправлено письмо с ссылкой валидации ящика) и домен для которого нужно сделать сертификат.
На последнем этапе скрипт потребует валидацию домена и опишет процедуру
нужно будет создать файл
h_ttp://domen.net/.well-known/acme-challenge/CX6sMneAd5fDddC8lInuw1TPKzw3r6v2clkS4BU
nano /var/www/html/.well-known/acme-challenge/CX6sMneAd5fDddC8lInuw1TPKzw3r6v2clkS4BU
и записать в него CX6sMneAd5fDddC8lInuw1TPKzHx3r6v2clkS4BU.henBYbMB4SCKck-1CYPb4irxo3gE_q-JtaBImh9CQ9k
как предлагает скрипт (второй вариант предлагает выполнение python скрипта на сервере).
После этого жмем ввод — Press Enter to Continue
и должны получить следующее:
Congratulations!...
Получаем сертификаты тут:
/etc/letsencrypt/live/domain.ru/
privkey.pem — приватный ключ для сертификата
Используется Apache для SSLCertificateKeyFile и nginx для ssl_certificate_key.
cert.pem (сертификат сервера)
Используется Apache для SSLCertificateFile.
chain.pem (сертификат цепочки)
Он же используется Apache для SSLCertificateChainFile.
fullchain.pem (соединение chain.pem и cert.pem)
Он же используется nginx для ssl_certificate.
Полные пути на эти файлы нужно будет указывать в конфигурационных файлах вебсерверов Apache, nginx.
Шаг 4. Файлы сертификата созданы и размещены по адресу: /etc/letsencrypt/live/domain.net/
Настройка ssl-конфига
nano /etc/apache2/sites-available/default-ssl.conf
Редактируем файл default-ssl.conf:
SSLCertificateFile "/usr/local/etc/apache22/ssl/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache22/ssl/server.key"
на
SSLCertificateFile /etc/letsencrypt/live/domain.net/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.net/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain.net/chain.pem
Шаг 5. Перезапускаем apache:
/etc/init.d/apache2 restart
Открываем в браузере
h_ttps://10.0.0.2/
или проверяем сертификат через сервис h_ttps://rus.gogetssl.com/check-ssl-installation/
Если не получаем приветствующего сообщения «It works!»:
Смотрим логи
tail /var/log/httpd-error.log
Шаг 6 (необязательный). Настройка автопродления сертификата
Вручную продлить сертификат на 3 месяца можно так:
/usr/local/letsencrypt/certbot-auto renew
Перезагружаем Apache:
/etc/init.d/apache2 restart
Для автоматизации процесса добавим задание в планировщик сron.
Откройте список заданий cron:
Добавьте следующие строки:
30 5 * * 1 sudo /usr/local/letsencrypt/certbot-auto renew
35 5 * * 1 sudo /etc/init.d/apache2 restart
Каждый понедельник, в 05:30 будет производиться запуск клиента Let's Encrypt, и в случае необходимости - выполняться продление сертификата.