Apache / 2.2.15,CentOS Linux。
我有一个网站,我希望整个网站始终进行SSL加密。通常,我不使用mod_rewrite来做我的www /非www重定向;我只使用VirtualHost
和Redirect
指令。
但是,尝试使用我的HTTPS站点执行此操作会在所有浏览器中返回通用SSL连接错误。这是我的vhost文件(域名和IP地址已更改):
NameVirtualHost 192.168.0.256:80
NameVirtualHost 192.168.0.256:443
<VirtualHost 192.168.0.256:80>
ServerName www.example.com
ServerAlias example.com
Redirect / https://www.example.com/
</VirtualHost>
# ############################
# This block breaks everything
# ############################
<VirtualHost 192.168.0.256:443>
ServerName example.com:443
Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost 192.168.0.256:443>
DocumentRoot /var/www/example_site/htdocs/
ServerName www.example.com:443
ErrorLog /var/www/logs/example_site/error_log
SSLEngine On
SSLCertificateFile /etc/httpd/ssl.crt/www.example.com.crt
SSLCertificateKeyFile /etc/httpd/ssl.key/www.example.com.key
SSLCACertificateFile /etc/httpd/ssl.crt/www.example.com.ca-bundle
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
<Directory /var/www/example_site/htdocs/>
Options FollowSymLinks MultiViews
AllowOverride All
</Directory>
<Files ~ "\.php$">
SSLOptions +StdEnvVars
</Files>
</VirtualHost>
标记为“此块打破一切”的块似乎是罪魁祸首。当VirtualHost
块被注释掉时,网站按预期加载,一切都很好。但我真的希望/需要将非www重定向到www,并且当启用该块时,我会在每次尝试加载网站时得到此信息:
错误日志似乎没有显示任何有用的内容。任何人都可以从中判断究竟出了什么问题吗?
答案 0 :(得分:2)
端口443始终需要附加证书。即使它只是一个简单的重定向。连接 - &gt; SSL - &gt;数据传输。