一、获取证书
升级到 HTTPS 协议的第一步,就是要获得一张证书。阿里云上可以申请免费的HTTPS证书。
1.首先登录阿里云,在“产品与服务”的下拉菜单中,找到“CA证书服务(数据安全)”。
(此图片来源于网络,如有侵权,请联系删除! )
2.点击右上角“购买证书”按钮
(此图片来源于网络,如有侵权,请联系删除! )
3.“保护类型”选择“一个域名”,品牌选择赛门铁克。
(此图片来源于网络,如有侵权,请联系删除! )
然后证书类型选择“免费型DV SSL”。
(此图片来源于网络,如有侵权,请联系删除! )
4.点击“立即购买”
(此图片来源于网络,如有侵权,请联系删除! )
5.购买成功后,点击“补全”
(此图片来源于网络,如有侵权,请联系删除! )
6.输入一个域名,有一点需要注意,这里需要精确到二级域名,例如www.dede58.com和pay.dede58.com是两个二级域名,是不一样的。只能输入一个,如果有多个域名需要HTTPS,需要购买多次,每次配置一个域名。填写后,点击下一步。
(此图片来源于网络,如有侵权,请联系删除! )
7.填写个人信息,如果域名也在阿里云,域名验证类型可以选择DNS,并勾选。如果域名不在阿里云且服务器是linux的,那么选择文件。
(此图片来源于网络,如有侵权,请联系删除! )
(此图片来源于网络,如有侵权,请联系删除! )
8.如果是选择文件,需要将指定文件下载到指定目录下。
(此图片来源于网络,如有侵权,请联系删除! )
9.等待审核通过后,点击“下载”,下载证书。
(此图片来源于网络,如有侵权,请联系删除! )
二、安装证书
根据服务器的环境选择相应的证书下载并阅读配置教程即可。
(此图片来源于网络,如有侵权,请联系删除! )
安装成功后,使用 SSL Labs Server Test 检查一下证书是否生效。
三、修改链接
下一步,网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。
<script src="http://foo.com/jquery.js"></script>
上面这行加载命令,有两种改法。
<!-- 改法一 -->
<script src="https://foo.com/jquery.js"></script>
<!-- 改法二 -->
<script src="//foo.com/jquery.js"></script>
其中,改法二会根据当前网页的协议,加载相同协议的外部资源,更灵活一些。
另外,如果页面头部用到了rel="canonical",也要改成HTTPS网址。
<link rel="canonical" href="https://foo.com/bar.html" />
四、301重定向
下一步,修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。
Nginx 的写法。
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
Apache 的写法(.htaccess文件)。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]