我想我一次尝试做三件事,但我想:
example.com
引导至example.com.au
example.com.au
引导至www.example.com.au
即,所有四种变体都针对HTTPS版本。
以下是配置文件中的部分:
<VirtualHost *:80>
ServerName example.com.au
ServerAlias www.example.com.au example.com www.example.com
ServerAdmin …
Redirect permanent / https://www.example.com.au/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com.au:443
ServerAlias example.com.au www.example.com example.com
ServerAdmin …
VirtualDocumentRoot /whatever/example.com/www
CustomLog logs/example.log combined env=!dontlog
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.example.com.au/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com.au/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.example.com.au/chain.pem
</VirtualHost>
问题是虽然重定向似乎有效但证书似乎不适用。当我尝试在浏览器中打开以下内容(没有www
)时:
https://example.com.au/
我收到以下消息:
The certificate is only valid for www.example.com.au
现在我认为重定向应该告诉浏览器它真的会https://www.example.com.au
,但是:
问题是:如何配置虚拟主机以使用一个证书将这些变体重定向到SSL?
我的DNS服务器设置正确(所有名称都正确解析),LetsEncrypt正确且最新。只有域名已被更改以保护无辜者。
答案 0 :(得分:0)
警告的原因是:您的浏览器在尝试访问https://example.com.au/时,无法相信301 Redirect
回复确实来自example.com.au
,因为没有证书中的主机名。
由于您已经在使用Let的加密证书,因此您只需将:443
VirtualHost拆分为4个独立的vhost,每个vhost都有自己的证书,然后配置其中3个重定向到{ {3}}(或者,如果可能的话,获得一个与所有需要的主机名匹配的证书)。