强制在前端的所有页面上执行HTTPS,而不仅仅是Checkout / Account


10

在后端中,我已在“前端”中启用“ 使用安全URL”。但是用户仍然可以通过非安全URL访问我的网站,但结帐/帐户页面除外。

我想在所有页面上强制使用安全URL。我现在要做的是将不安全的基本URL更改为“ https:// ...”。

看来行得通。如果用户使用HTTP,则会将他们重定向到https。但是我想知道这是否是正确的方法。有副作用吗?


香港专业教育学院听说正确的方法是重写config.xml中的安全路由

Answers:


16

默认答案是,根据您的设置,将不安全的基本URL设置为https://,如果用户尝试使用http://,这已经足以进行重定向

也许在Web服务器级别进行重定向会更好,因为它避免了先通过php进行请求。

并且,如果您想要真正安全的解决方案,则应在https://hstspreload.appspot.com/上添加您的网站。但是请谨慎操作,如果您需要更改证书,这可能会导致大问题。让您的托管人关心此部分。


为什么要更改证书?HSTS“仅”表示浏览器从现在开始仅通过HTTPS访问页面。我为此做了一个模块:github.com/ikonoshirt/StrictTransportSecurity
Fabian Blechschmidt

1
也许我将其与证书固定混为一谈了。认为预加载也将包含指纹证书
Flyingmana

2
@Flyingmana:如果您在Chromium源代码中查看实际的HSTS预加载列表,则绝大多数条目都不包含证书指纹或任何种类的内容,仅包含域名。
Leigh Brenecki 2015年

4

您可以使用apache中的.htaccess进行此操作。使用这些行:

############################ Force SSL ############################
RewriteCond %{HTTP_HOST} !^localhost$
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############################ Force SSL ############################

4

对于任何绊倒这个的人(像我一样)

不要使用htaccess。在管理员下Stores -> General -> Web and change -> Use Secure URLs on Storefront -> Yes and Use Secure URLs in Admin -> Yes

无需编辑任何文件。


1
哇,好时机。昨天回答。我认为这应该是答案...至少,这是在不影响apache的情况下强制在前端使用https和admin。当前选择的答案启用HTTPS,但是此答案“强制” https。
Joe Fletcher'Dec

1
这正是发问者说的他们尝试过的并且没有起作用的内容
Dom

2

我已经尝试过以前的解决方案,即使它们似乎可以工作,但仍将我锁定在管理面板之外(不完全了解原因)。

要再次进入管理面板,我必须进入phpmyadmin并进入数据库表core_config_data并更改两个路径web / secure / use_in_adminhtmlweb / unsecure / base_url再次回到管理面板。而且,如果必须在数据库中进行编辑,请不要忘记清除缓存文件夹...

所以我改用以下.htaccess解决方案,该解决方案也让我也可以登录到管理员

# AFTER THIS SECTION
############################################
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# PUT THIS 
############# ALL PAGES HTTPS #################
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/admin/
RewriteCond %{REQUEST_URI} !/downloader/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############# ALL PAGES HTTPS #################

希望它能帮助某人


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.