我以为我已经正确设置了 ssl,但是我发现了一个问题。
这部分没问题:ssldomain.com
转到https://ssldomain.com
。
但这行不通:www.ssldomain.com
is going to http://anotherdomain.com
,它恰好是机器上的第一个虚拟主机。换句话说,我有一个非 SSL 虚拟主机在该服务器上运行,并且www.ssldomain.com
正在跳转到该服务器。
我使用了这个实用程序并验证了我的 Commodo“PositiveSSL”证书涵盖了带有和不带有“www”的域。
我正在使用 Apache 2.2.3-65。
这是我的配置/etc/httpd/conf.d/ssl.conf
......
<VirtualHost *:443>
ServerName www.ssldomain.com
ServerAlias ssldomain.com
DocumentRoot "/opt/deployed_rails_apps/ssl_site/current/public"
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/www.ssldomain.com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/www.ssldomain.com.pem
SSLCACertificateFile /etc/pki/tls/certs/www.ssldomain.com.ca-bundle
SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH
SSLProtocol all -SSLv2
Header add Strict-Transport-Security "max-age=15768000"
ErrorLog "logs/ssldomain.com-ssl-error_log"
CustomLog "logs/ssldomain.com-ssl-access_log" common
CustomLog "logs/ssldomain.com-ssl-deflate_log" deflate
<Directory "/opt/deployed_rails_apps/rock_pebble/current/public">
Options -MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</Virtualhost>
# apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443 ssldomain.com (/etc/httpd/conf.d/ssl.conf:230)
*:80 is a NameVirtualHost
default server anotherdomain.com (/etc/httpd/conf/httpd.conf:232)
port 80 namevhost anotherdomain.com (/etc/httpd/conf/httpd.conf:232)
Syntax OK
您不能在 DNS 级别重定向,但您可以轻松地在端口 80 上配置另一个虚拟主机来处理重定向。
好的,谢谢大家的帮助。我想我已经明白了。我在 httpd.conf 中设置了一个非 SSL 虚拟主机,并按照我在 ssl.conf 中的问题中所述设置了 SSL 虚拟主机。
非 SSL 虚拟主机具有此...
而 SSL 虚拟主机只有这个......
在我的应用程序代码中,我强制所有流量转到相应的
https
URL。现在,URL 可以解析带有和不带有“www”的内容,并且所有内容都通过 SSL 提供。