Я создал сертификат Let's encrypt для своего домена с помощью certbot. Я обязательно включил www и некоторые (необходимые) поддомены, поэтому сертификат должен быть действителен для не-www и www:
domain.com www.domain.com sub1.domain.com ...
Но это не тот случай, если я попытаюсь получить доступ к https://domain.com это вызовет ошибку ssl.
В средстве просмотра сертификатов (при доступе через www) я вижу Common Name (CA) domain.com. Альтернативное имя субъекта сертификата содержит не-www и www ...
Поэтому я не понимаю, почему он дает эту ошибку:
domain.com uses an invalid security certificate.
The certificate is not trusted because it is self-signed.
Error code: SEC_ERROR_UNKNOWN_ISSUER
Я сгенерировал самозаверяющий сертификат, но для блока виртуального хоста по умолчанию (тот, что находится в httpd-ssl.conf) другие блоки используют сертификат Let's encrypt.
Я также удалил кеш firefox.
Я добавил исключение, и теперь оно перенаправляется на https://www.domain.com каждый раз, когда я пишу https://domain.com.
Я использую Apache 2.4.23, и моя конфигурация vhosts выглядит следующим образом:
<VirtualHosts *:80>
Servername domain.com
Redirect permanent / https://www.domain.com/
</VirtualHosts>
<VirtualHost *:443>
ServerName domain.com:443
Redirect permanent / https://www.domain.com:443/
</VirtualHost>
<VirtualHost *:PORT> # 80 and 443
ServerAdmin webmaster@domain.com
DocumentRoot "/srv/http/domain.com/www"
ServerName www.domain.com:443
Protocols h2 h2c
<Directory "/srv/http/domain.com/www">
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^index\.php$ - [L]
RewriteRule . index.php [L]
</IfModule>
</Directory>
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/domain.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/domain.com/privkey.pem"
Header always set Strict-Transport-Security "max-age=15768000"
ErrorLog "/var/log/httpd/domain.com-ssl_error_log"
CustomLog "/var/log/httpd/domain.com-ssl_access_log" common
LogLevel debug
</VirtualHost>
Вы не обслуживаете сертификат Let's Encrypt для запросов к example.com.
<VirtualHost *:443>
ServerName domain.com:443
Redirect permanent / https://www.domain.com:443/
</VirtualHost>
Все соответствующие директивы SSL отсутствуют.
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/domain.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/domain.com/privkey.pem"
Header always set Strict-Transport-Security "max-age=15768000"