{ Hello Magento 2 }

解决 Magento 2 应用问题,更注重深度挖掘。(ง •̀_•́)ง

0%

Magento 2 Https

本篇我们来谈一谈 Magento 2 如何使用 Https

Https 是什么

超文本传输安全协议(Hypertext Transfer Protocol Secure 缩写:HTTPS,也被称为HTTP over TLS,HTTP over SSL 或 HTTP Secure)他是一种网络安全传输协议。

HTTPS 使用 HTTP 进行通信,但利用 SSL/TLS 来对数据包进行加密。HTTPS 开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。

简单说来,使用 HTTPS 通信,信息是加密的,而使用 HTTP 传输,信息是明文。所以 HTTPS 更加安全。

Google 是鼓励使用 HTTPS 的, HTTPS 的站点会获得更好的排名。百度 2014 年也已经从 HTTP 转向了 HTTPS 。所以使用 HTTPS 实在是大势所趋。

阿里云免费证书

博主的 Magento 2 搭建在阿里云上,所以以阿里云为例,申请一个免费的证书配置到 Magento 2上。

登录阿里云后,在产品与服务中,找到证书服务 > 购买证书,然后按照提示申请好就行了。博主使用的域名验证类型是 DNS ,所以还要去域名解析中做好配置。然后下载该证书。

请根据你的服务器类型下载证书,就像下面这样:

你看,他都告诉你怎么安装证书了。不过这个是 Centos 上的 Apache 配置方式。博主是 Ubuntu,所以下面的内容针对的是 Ubuntu 下 Apache 的证书配置。

Ubuntu Apache 配置证书

首先,确保 SSL 模块加载进 Apache 了。

1
2
3
a2enmod ssl
...
Module ssl already enabled

如果你看到上面类似的信息,说明你已经 ok 了。如果看到 “Enabling module ssl” ,你还需要重启下 Apache

1
service apache2 restart

下面我们将下载的证书上传到服务器上并放到安全的位置。在配置文件中进行配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<VirtualHost *:443>
DocumentRoot /www/html/yoursite
ServerName www.example.com
ServerAlias example.com
Options +FollowSymLinks
rewriteEngine on
rewriteCond %{http_host} ^example.com [NC]
rewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/yourdomainname.pem
SSLCertificateKeyFile /etc/apache2/ssl/yourdomainname.key
SSLCACertificateFile /etc/apache2/ssl/yourdomainname.pem
<Directory "/www/html/yoursite">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

保存后重启。下面我们要去 Magento 2 后台进行配置了

Magento 2 后台配置 Https

Stores > Configuration > General > Web > Base URLs (Secure)

配置好后刷新缓存(资料太多不详细说了),我相信你的网站就可以用 https 了。

如果你希望 80 端口重定向到 443 端口,可以用下面的配置(当然是80端口的配置中)

1
2
3
RewriteEngine on
RewriteCond %{SERVER_port} 80
RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]

不管是80 还是 443 端口的配置,请一定要不要少了

1
2
3
4
5
6
<Directory /www/html/yoursite>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>

另外,需要注意浏览器的缓存,建议使用隐私窗口进行测试,排除浏览器缓存的影响。

诸位,Good Luck!