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

https://domain.com ошибка ssl, и он не будет перенаправлять на www, если не добавит исключение

Я создал сертификат 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"