我在 Linode 服务器上的 Ubuntu 14.04.4 LTS 上运行 Apache 2.2。我在这台机器上托管了多个域(只有 1 个 IP 地址)。
我在这里托管了一个域名 tbw.com,我有一个 SSL 证书,我想让所有http://tbw.com和http://www.tbw.com重定向到的查询https://www.tbw.com(这在当前配置中发生)
我也有rf.com和其他网站,它们运行良好http://rf.com和http://www.rf.com
然而,当我尝试访问https://www.rf.com,它会给出一个错误:
Your connection is not secure
...
www.rf.com uses an invalid security certificate.
The certificate is only valid for the following names: www.tbw.com, tbw.com
Error code: SSL_ERROR_BAD_CERT_DOMAIN
- 我不希望发生这种情况 - 我宁愿它显示非 SSL 域的标准/预期的“安全连接失败”错误。
- 我可以在同一台机器(同一 IP 地址)上安装具有 SSL 证书的其他域名吗?
我已查看以下帖子,但我认为答案已经过时,因为 SNI(服务器名称指示)现在已经存在。
我的配置文件:
/etc/apache2/apache2.conf
...
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
...
/etc/apache2/ports.conf
NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
...
/etc/apache2/sites-available/tbw.com.conf
<VirtualHost *:80>
ServerName tbw.com
ServerAlias www.tbw.com
DocumentRoot /var/www/html/tbw.com/public_html
Redirect permanent / https://www.tbw.com/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost www.tbw.com:443>
ServerAdmin [email protected]
ServerName www.tbw.com
DocumentRoot /var/www/html/tbw.com/public_html
# Log file locations
LogLevel warn
ErrorLog /var/www/html/tbw.com/log/error.log
CustomLog /var/www/html/tbw.com/log/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/tbw.com/www_tbw_com.crt
SSLCertificateKeyFile /etc/apache2/ssl/tbw.com/tbw.key
SSLCertificateChainFile /etc/apache2/ssl/tbw.com/www_tbw_com.ca-bundle
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
答案1
我不希望发生这种情况 - 我宁愿它显示非 SSL 域的标准/预期的“安全连接失败”错误。
在这种情况下,您必须将 apache 配置为不接受任何不支持 SNI 的客户端,即SSLStrictSNIVHostCheck on
。在这种情况下,没有配置证书的虚拟主机应该会导致客户端出现错误,即无效的服务器名称或握手错误(取决于浏览器)。
我可以在同一台机器(同一 IP 地址)上安装具有 SSL 证书的其他域名吗?
只要客户端使用 SNI(所有现代浏览器都使用),这应该是可能的。