Настройка www.domain.com и domain.com с помощью zonefile или letsencrypt для постоянной переадресации на domain.com

Настройка www.domain.com и domain.com с помощью zonefile или letsencrypt для постоянной переадресации на domain.com

У меня есть пример, который всегда должен приводить кhttps://example.com, даже когда пользователь вводитwww.example.com, https или нет. В идеале автоматизированный файл конфигурации letsencrypt config https должен работать.

  • Я пробовал удалить A-запись для www и использовать CNAME вместо нее, чтобы указать на example.com или @. Это, похоже, не дало никакого эффекта, и пользователи все равно попадают на www. Понятия не имею, почему.

Вот моя текущая конфигурация:

<VirtualHost [IPV6]:80 IPV4:80>
    ServerAdmin [email protected]
    DocumentRoot /home/example/public_html
    ServerName example.com
    ServerAlias www.example.com
    ErrorLog logs/example.error.log
    CustomLog logs/example.acccess.log common
    <Directory /home/example/public_html>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    RewriteEngine on 
    RewriteCond %{SERVER_NAME} =example.com [OR] 
    RewriteCond %{SERVER_NAME} =www.example.com 
    RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent] 
</VirtualHost>

<VirtualHost [IPV6]:443 IPV4:443>
    ServerAdmin [email protected]
    DocumentRoot /home/example/public_html
    ServerName example.com
    ServerAlias www.example.com
    ErrorLog logs/example.error.log
    CustomLog logs/example.acccess.log common
    <Directory /home/example/public_html>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
</VirtualHost>

Однако затем,https://www.example.comвыдает плохой сертификат, даже если я добавляю это в конфигурацию :443:

    RewriteCond %{SERVER_NAME} =www.example.com 
    RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent] 

Как перенаправить http и https запросы наwww.example.comкhttps://example.com?

решение1

Клиенты приезжают вhttps://www.example.comпоэтому даже если вы сделаете перенаправление наhttps://example.comтебе нужнодва SSL-сертификата(один для example.com, а другой дляwww.example.com) илиединый SSL-сертификат, действительный для обоих доменов.

Если вы используетеcertbotДля выдачи сертификатов Let's Encrypt вы можете использовать несколько -dпараметров, чтобы указать несколько доменов, например:

certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com

Связанный контент