2016-05-03 54 views

回答

3

将http重定向到https的唯一安全方法是使用带预加载选项的HSTS(标头严格传输安全性)。

Apache重定向是不安全的,因为攻击者可以拦截它并重写它。不幸的是,旧的浏览器和浏览器怎么也没有预装HSTS,这是你唯一的选择:

<VirtualHost *:80> 
     ServerName www.example.com 
     Redirect "/" "https://www.example.com/" 
</VirtualHost> 

Apache redirect

在HTTPS响应:

<VirtualHost *:443> 
     # Use HTTP Strict Transport Security to force client to use secure connections only 
     # Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" 
     Header always set Strict-Transport-Security "max-age=31536000" 

     # Further Configuration goes here 
     [...] 
</VirtualHost> 

HSTS

或者,使用.htaccess:

# Redirect if http 
RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
# set header if https 
# Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS 
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS 

页眉严格,运输和安全(HSTS)有2个作用:

  • 对于游客,它告诉浏览器只使用HTTPS在该域和一年所有子域(全http请求将被重写为https请求,而无需网络交互)
  • 对于浏览器供应商而言,“预加载”关键字允许他们预加载网站的源代码。由此,您避免了第一个不安全的请求:浏览器已经知道该网站提交给https。 注意HSTS +预紧不能回滚,这是一个明确的承诺,安全性:在注释是(但它是它的强度攻击者无法删除它太)

的HSTS最安全的一个,但不能被回滚:

  • 严格,运输和安全“最大年龄= 31536000; includeSubDomains;预压”

不是在评论中HSTS是因为第一个不太安全连接仍然可以是inse治愈,并且没有保护子域:

  • 严格,运输和安全 “最大年龄= 31536000”

HSTS是针对SSLTrip

SEO影响的唯一可靠的保障:如果该网站已经将所有http网页重定向到https,然后该标题没有负面影响(也没有正面影响)。

+0

你能告诉我我需要做这些改变吗? – Overnet

+0

@Overnet我已经更新了答案。 – Tom

+0

感谢汤姆,但现在的问题是如何将这些线路在端口80,433上的directadmin界面:( – Overnet

0

添加只是根低于或高于文档中/etc/apache2/sites-available/yoursite.conf

永久重定向/ https://your-site.com/

+0

该答案正确但不完整:没有HSTS,apache重定向总是不安全。 – Tom

相关问题