Я пытаюсь настроить подстановочный сертификат с помощью Let's Encrypt на сервере Ubuntu 18.04, на котором запущен apache2, для домена abc.def.com (не настоящего доменного имени) и всех поддоменов (* .abc.def.com)
Мне удалось создать сертификат вручную, используя следующую команду:
certbot certonly --manual -d abc.def.com -d *.abc.def.com
Я следовал инструкциям, создал запись TXT для домена abc.def.com и т. Д. И получил подтверждение, что сертификат был успешно создан и сохранен в / etc / letsencrypt / live /
Я изменил /etc/apache2/sites-enabled/001-abcsite-le-ssl.conf сайта, чтобы он ссылался на новые сертификаты в / etc / letsencrypt / live следующим образом:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName abc.def.com
ServerAdmin webmaster@def.com
DocumentRoot /var/www/abc
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/abc.def.net-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/abc.def.net-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Я перезапустил apache2 и подтвердил, что ошибок нет.
service apache2 restart
Теперь, когда я пытаюсь получить доступ https://abc.def.com Я получаю сообщение об ошибке SSL_ERROR_BAD_CERT_DOMAIN, в котором говорится: «Этот сертификат действителен только для * .abc.def.com».
Я не понимаю, почему, поскольку я включил параметры для abc.def.com и * .abc.def.com в запрос certbot.
Затем я попытался включить ранее сгенерированный мной сертификат без подстановочных знаков, который применяется только к abc.def.com, в качестве другого набора директив SSLCertificateFile и SSLCertificateKeyFile в файле конфигурации VirtualHost, но это не имеет никакого значения.
Что я делаю не так?
ОБНОВИТЬ: Я смог заставить его работать, используя оба сертификата, настроив два раздела VirtualHost следующим образом. Но что-то не так с сертификатом с подстановочными знаками, если он также не охватывает корневое имя, верно?
<VirtualHost *:443>
ServerName abc.def.com
ServerAdmin webmaster@def.com
DocumentRoot /var/www/abc
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/abc.def.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/abc.def.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
<VirtualHost *:443>
ServerName localhost.abc.def.com
ServerAlias *.abc.def.com
ServerAdmin webmaster@def.com
DocumentRoot /var/www/abc
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/abc.def.net-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/abc.def.net-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Это не похоже на правильный способ использования -d
: так должно быть -d abc.def.com,*.abc.def.com