Как автоматически получить и продлить 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.
Только что узнал что для апдейта сертификата апач должен рестартнутся,  тоесть без даунтайма никак, боже весь веб один гавнокод <br/> нгинкс опенсайтспид тоже
тут два совершенно очевидных варианта. <br/> первый. запустить апач на 80 порту и получить сертификат первый раз (LE для проверки нужен 80й порт, верно пишите). После этого настроить 443й и запустить уже полный конфиг, настроить автообновление. <br/> второй. у acme и у certbot есть режим запуска без вебсервера. (standalone)
Похожие вопросы