美文网首页
WordPress+七牛云存储插件之HTTPS(SSL证书)

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

作者: 福水 | 来源:发表于2018-03-23 15:18 被阅读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 官网

    相关文章

      网友评论

          本文标题:WordPress+七牛云存储插件之HTTPS(SSL证书)

          本文链接:https://www.haomeiwen.com/subject/vgrxcftx.html