WordPress+七牛云存储插件之HTTPS(SSL证书)

2018-03-23  本文已影响0人  福水

一、环境准备

Ubuntu 14.04、Apache 2.4.7、Lets Encrypt、Git

其实配置起来还是蛮简单的,我们使用第三方工具按照步骤来安装就好。但是如果想要深入了解可能要涉及到更深的背景知识:RSA算法、DES算法、CA机构等等,随便哪个方向都够学习一阵子的。

二、概念了解

2.1 https 与 http 的区别

HTTPS,全名叫安全的超文本传输协议(HyperText Transfer Protocol Secure),为啥是安全的超文本传输协议呢?

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全(

HTTP+加密+认证+完整性保护 = HTTPS )。

2.2 SSL证书

SSL证书没有所谓的“品质”和“等级”之分,只有三种不同的类型

SSL证书需要向国际公认的证书证书认证机构(简称CA,Certificate Authority)申请。

CA机构颁发的证书有3种类型:

域名型SSL证书(DV SSL):信任等级普通,只需验证网站的真实性便可颁发证书保护网站;

企业型SSL证书(OV SSL):信任等级强,须要验证企业的身份,审核严格,安全性更高;

增强型SSL证书(EV SSL):信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最高,同时可以激活绿色网址栏。

如果是个人博客、中小企业网站和一些传统行业的形象展示类网站,一般来说只需要申请一个域名型SSL证书(DV SSL)就足够了,一方面这类网站确实没有值得加密的信息,而且HTTPS在国内普及率不高,国内网民对这个也不太重视,另一方面DV SSL证书申请流程简洁,费用低,甚至有一些可以免费申请。比如说我们要用到的 Lets Encrypt

三、安装 Lets Encrypt

3.1 简介

Let’s Encrypt 是一个新的证书颁发机构(CA),它提供了一个相对简便的方法来帮助用户自动获取并安装免费的TLS/SSL证书,从而为web服务器开启加密的HTTPS协议。它由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务,而 ISRG 是来自于美国加利福尼亚州的一个公益组织。Let’s Encrypt 得到了 Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构的支持,发展十分迅猛。

3.2 安装流程

3.2.1 安装 let Encrypt

我们需要做的第一件事是更新包管理器缓存:

sudo apt-get update

我们一般把第三方的软件安装到 opt 文件夹里面:

sudo git clone https://github.com/letsencrypt/letsencrypt  /opt/letsencrypt

3.2.2 初始化SSL证书

Let’s Encrypt client 能够自动化生成 Apache SSL证书,用起来还是很方便的。

访问letsencrypt目录:

cd /opt/letsencrypt

要执行交互式安装程序,并获得单个域名的证书。运行 letsencrypt-auto 命令的方法:

./letsencrypt-auto --apache -d  example.com(换成你自己的域名)

如果一切顺利,您现在应该有证书文件 /etc/letsencrypt/live/*****/

3.2.3 使用ssl证书

我们要开启 Apache2 中的 SSL模块:

sudo a2enmod ssl

要使HTTPS运行,我编辑了我的Apache2配置来设置SSL模块,我们需要在 apache2 的配置文件夹 site-available 里面,我们需要为我们对应的域名创建一个 .conf(其设置方式和其他设置方式一样) ,来使得我们的域名通过 443 端口找到我们的证书:

比如,在我的文件夹下面有 001-defaul.conf ,是将域名 zhaoshuai.me 解析到我的WordPress的配置文件:

然后我们执行完成生成ssl证书的之后,应该会生成一个相对应的文件 001-default-le-ssl.conf,我们可以注意到,此时监听的端口是443:

如上面小图所示,需要在最后添加(将*****换成你的域名):

        SSLCertificateFile /etc/letsencrypt/live/*****/cert.pem

        SSLCertificateKeyFile /etc/letsencrypt/live/*****/privkey.pem

        Include /etc/letsencrypt/options-ssl-apache.conf

        ServerName ******

        SSLCertificateChainFile /etc/letsencrypt/live/*****/chain.pem

配置完成之后,重启apache2:

sudo service apache2 restart

3.2.4 设置更新

Let’s Encrypt 证书的有效期为90天,因此建议每60更新一次证书。 好在 Let’s Encrypt Client 有一个自动更新命令,可自动检测当前安装的证书,并在证书即将过期的30天内自动续期证书。

cd /opt/letsencrypt/

./letsencrypt-auto renew

确保您的证书永不过期一种实用的方法是创建一个cron计划任务,该任务程序将定期为您执行自动续期命令。 编辑crontab来创建每过一周就运行命令续期的计划任务。以root用户身份编辑crontab,运行:

sudo crontab -e

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

保存并退出。这时,将创建一个新的cron计划任务:“在每周星期一凌晨2:30执行letsencrypt自动续期命令。” 而程序的日志文件会储存在 /var/log/le-renewal.log。

四、设置wordpress

安装完成ssl证书之后,我们发现博客上很多东西都打不开了,不慌,我们还需要设置一些东西。

4.1 设置-常规

将 WordPress地址(URL) 和 站点地址URL都改成 https:

4.2 设置WP Super Cache、WPJAM七牛镜像存储

将所有的前缀为http 的换成 https

4.3 设置 upload_url_path

在 https://你的域名/wp-admin/options.php ,ctrl + f 找到 upload_url_load,将 http 换成 https:

五、设置七牛云

当我们设置完成上面之后,我们发现,博客是能够打开了,但是好像很多图片都显示不出来,这是因为我们之前设置的七牛云对象存储空间(具体的请查看【笔记】wordpress+七牛云存储插件之CDN加速)的外链是 HTTP ,没有走HTTPS:

5.1 申请SSL证书

我们去七牛云的之前创建的对象存储空间,可以看到我们的qiniu.zhaoshuai.me绑定的这个域名,然后我们需要去 七牛云SSL证书 去购买一个免费的证书:

购买完成之后需要补全信息,需要的注意的是在填写的域名信息的时候,将域名填写成 qiniu.zhaoshuai.me(也就是你对应的对象存储绑定的CDN加速域名的信息),这个很关键,因为证书和域名是一一对应的,在下面会用到。

5.2 升级 qiniu.zhaoshuai.me 为https

在SSL证书通过验证之后,找到创建的对象存储空间,在空间概述里面找到我们绑定的CDN域名,可以看到一个升级到HTTPS的按钮,之后可以选择之前我们申请的 SSL证书,通过验证之后就可以啦:

六、大功告成

现在再试试,应该就能顺利打开我们的博客啦啦,是不是前面多了一个绿色的小锁

参考文献:

1、推酷HTTPS and HTTP2 on Apache2 with Let’s Encrypt

2、免费ssl证书申请 letsencrypt 申请流程 letsencrypt 使用教程

3、Let’s Encrypt 官网

上一篇下一篇

猜你喜欢

热点阅读