Apache SSL配置中断HTTP

时间:2015-11-24 11:40:31

标签: apache ssl

我今天已经安装了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>

2 个答案:

答案 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)

好吧,经过多次流泪,我才把它弄出来,我很想念 ServerAlias www.example.org

对于端口80,感谢Ben为HSTS标题,我将def使用它。欢呼声