我今天已经安装了SSL证书,它运行良好,通过https://正常工作的网页。
我在我的website.conf中添加了一个重定向,将端口80重定向到https,但它无效。
此外,如果我转到http://www.example.org(根),它会陷入重定向循环。 转到http://www.example.org/test.htm转到相同的网址减去最后一个/。例如http://www.example.orgtest.htm/(斜线移动到结束)
这真是让我失望,我真的希望你们有一些线索。
这是我的.conf文件
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.org
Redirect permanent / https://www.example.org
</VirtualHost>
<VirtualHost _default_:443>
# Admin email, Server Name (domain name), and any aliases
ServerAdmin richard@example.org
ServerName example.org
ServerAlias www.example.org
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.org
DocumentRoot /var/www/example.org/html
# SSL settings
SSLEngine on
SSLCertificateFile /etc/ssl/certs/www_example_org.crt
SSLCertificateKeyFile /etc/ssl/digicert/example.key
SSLCACertificateFile /etc/ssl/certs/DigiCertCA.crt
# Log file locations
LogLevel warn
ErrorLog /var/www/example.org/log/error.log
CustomLog /var/www/example.org/log/access.log combined
</VirtualHost>
答案 0 :(得分:1)
您的配置对我来说很合适。也许,您应该添加/
这样的内容:Redirect permanent / https://www.example.org/
您也可以使用Redirect permanent
:
mod_rewrite
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
为此,您必须安装mod_rewrite模块。
如果您想要强制https,另一种方法是在Apache配置中设置HSTS-Header。然后,浏览器知道您的网站可以使用https,并会自动将所有流量重定向到您的https地址。您可以使用以下命令设置此标头:
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
一般情况下,我建议您使用SSLLabs查看SSL配置。如果你的配置没问题,你应该得到一个A + -Rating。我希望这会有所帮助。
答案 1 :(得分:0)
对于端口80,感谢Ben为HSTS标题,我将def使用它。欢呼声