
У меня есть пример, который всегда должен приводить к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