Как автоматически получить и продлить SSL-сертификат для сервера Apache?

Как настроить Apache в статическом сайте для работы с HTTPS, так чтобы он не вырубался, если сертификат еще не создан или обновлен автоматически через certbot/acme?
  • 5 августа 2024 г. 18:23
Ответы на вопрос 3
Для автоматического получения и продления SSL-сертификата для сервера Apache можно использовать инструмент certbot, который позволяет управлять сертификатами Let's Encrypt.

1. Установите certbot на ваш сервер с помощью следующих команд:

```
sudo apt-get update
sudo apt-get install certbot python3-certbot-apache
```

2. Запустите команду certbot для запуска процесса получения и установки сертификата для вашего домена:

```
sudo certbot --apache
```

3. Следуйте инструкциям certbot для создания или продления сертификата.

Чтобы настроить Apache для работы с HTTPS и предотвратить выключение сервера в случае отсутствия или устаревания сертификата, можно добавить следующую конфигурацию в файл виртуального хоста для сайта:

```
<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA
    SSLHonorCipherOrder on
    SSLCompression off
    SSLOptions +StrictRequire

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```

Этот конфигурационный файл указывает на использование SSL-сертификата Let's Encrypt и предотвращает выключение сервера в случае проблем с сертификатом. В случае возникновения ошибок, Apache будет продолжать работать с HTTP, но без HTTPS.
Только что узнал что для апдейта сертификата апач должен рестартнутся,  тоесть без даунтайма никак, боже весь веб один гавнокод 
нгинкс опенсайтспид тоже
тут два совершенно очевидных варианта. 
первый. запустить апач на 80 порту и получить сертификат первый раз (LE для проверки нужен 80й порт, верно пишите). После этого настроить 443й и запустить уже полный конфиг, настроить автообновление.
второй. у acme и у certbot есть режим запуска без вебсервера. (standalone)
Похожие вопросы