2016-05-03 73 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

相關問題