Название: бесплатный ssl сертификат на 90дней с автоматическим проблением(letsencrypt) Отправлено: k291 от 26 Декабря 2017, 00:54:12 Включаем 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 как предлагает скрипт (второй вариант предлагает выполнение 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 Цитировать 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 Код: /etc/init.d/apache2 restart Для автоматизации процесса добавим задание в планировщик сron. Откройте список заданий cron: Код: crontab -e Цитировать 30 5 * * 1 sudo /usr/local/letsencrypt/certbot-auto renew 35 5 * * 1 sudo /etc/init.d/apache2 restart Каждый понедельник, в 05:30 будет производиться запуск клиента Let's Encrypt, и в случае необходимости - выполняться продление сертификата. |