Назад | Перейти на главную страницу

certbot-auto не может продлить лицензию на новый домен (403 запрещено)

У меня есть сервер Ubuntu в Digital Ocean, с которого я использую в основном один домен с несколькими поддоменами: domain.com, sub1.domain.com, sub2.domain.comи т.д. У каждого есть свой виртуальный хост.

Все виртуальные хосты настраиваются с помощью собственных файлов конфигурации в /etc/apache2/sites-available:

domain.conf // port 80
domain-le-ssl.conf // port 443
sub1.domain.conf
sub1.domain-le-ssl.conf
etc...

У меня есть настройка SSL-сертификата для всех из них через Let'sEncrypt / Certbot, принудительное перенаправление на HTTPS для всех из них. До сих пор это работало нормально. Однако теперь я хочу добавить еще один поддомен, sub3.domain.com.

Я скопировал файлы conf для sub2.domain.com и изменил соответствующие пути, имя сервера и т. д .:

sub3.domain.conf:

    <VirtualHost *:80>
    ServerName sub3.domain.com
    DocumentRoot /var/www/sub3_domain/html
    <Directory "/var/www/sub3_domain/html">
        # use mod_rewrite for pretty URL support
        RewriteEngine on
        # If a directory or a file exists, use the request directly
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # Otherwise forward the request to index.html
        RewriteRule . index.html
    </Directory>
RewriteCond %{SERVER_NAME} =sub3.domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

sub3.domain-le-ssl.conf:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName sub3.domain.com
    DocumentRoot /var/www/sub3_domain/html
    <Directory "/var/www/sub3_domain/html">
        # use mod_rewrite for pretty URL support
        RewriteEngine on
        # If a directory or a file exists, use the request directly
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # Otherwise forward the request to index.html
        RewriteRule . index.html
    </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/domain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/domain.com/chain.pem
</VirtualHost>
</IfModule>

После всех этих настроек я запустил certbot-auto для обновления моего сертификата и добавления нового поддомена к сертификату. Когда меня спросят, какие сайты я хочу добавить, я оставил поле пустым и нажал Enter для «все» (sub3.domain был включены в этот список). Затем он правильно понял, что я добавил новый поддомен, и спросил, хочу ли я расширить лицензию, чтобы охватить новый домен. Нажмите «e» для расширения, и все пошло, выполняя задачи.

Сразу все показалось немного неправильным, так как для всех моих существующих доменов он работал tls-sni-01 проблемы, но для моего нового он выполнил http-01 вызов:

tls-sni-01 for domain.com
tls-sni-01 for sub1.domain.com
tls-sni-01 for sub2.domain.com
http-01 for sub3.domain.com

Конечно, через несколько секунд я получил следующий результат:

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: sub3.domain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://sub3.domain.com/.well-known/acme-challenge/lKPYKHvStBag4YFzmfRbO7UpEINC4SYjEPMj-R_J-BY:
   "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
   <html><head>
   <title>403 Forbidden</title>
   </head><body>
   <h1>Forbidden</h1>
   <p"

Насколько мне известно, у меня нет каких-либо конкретных или конкретных правил .htaccess или других подобных правил, которые привели бы к запрещению любого подкаталога - и в любом случае, зачем проводить другой тест для этого одного сервера?

Я тоже пробовал это, не копируя sub3.domain-le-ssl.conf файл, поскольку я считаю, что он действительно создается certbot-auto. Процесс и результат были идентичны.