使用Let's Encrypt -- 免费的https证书


letsencrypt

(图片来自网络)

老高的证书快过期了(2016-12-11),本着节约资(R)源(MB)的精神,准备使用Let's Encrypt

由于老高的服务器在搬瓦工搭建,所以属于有shell权限的,所以老高可以使用Certbot(如下图)来简化操作。

certbot

如截图所示,选择合适的web服务器和系统后就可以进行安装和部署操作了。

ps. 看来想要顺利安装Certbot,还需要epel-release

I. 安装Certbot

yum install -y epel-release
yum install -y certbot

II. 使用webroot方式获取证书

使用webroot的方式可以让你不需要重启

操作前假设你的web目录为/var/html/www/

# -w 指定webroot根目录
# -d domain 想要获取的证书域名,支持多个域名
certbot certonly --webroot -w /var/html/www/ -d blog.phpgao.com -d www.phpgao.com -d phpgao.com

成功执行后会生成几个文件

➜  ~ ll /etc/letsencrypt/live/blog.phpgao.com/

cert.pem -> ../../archive/blog.phpgao.com/cert2.pem
chain.pem -> ../../archive/blog.phpgao.com/chain2.pem
fullchain.pem -> ../../archive/blog.phpgao.com/fullchain2.pem
privkey.pem -> ../../archive/blog.phpgao.com/privkey2.pem

这几个文件就是我们开启https所需要的所有文件了,更多信息可以参考为你的网站开启ssl支持

文件名 说明
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
fullchain.pem 包括了cert.pem和chain.pem的内容
privkey.pem 证书的私钥
listen 443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/blog.phpgao.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.phpgao.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/blog.phpgao.com/chain.pem;

/*
剩下的配置
*/

III. 自动更新

根据Certbot的文档,我们先测试一下升级流程

/usr/bin/certbot renew --dry-run

如果结果没有问题就可以加到计划任务中了!由于Let's Encrypt的证书有效期是3个月,而certbot renew只会更新还有30天才会过期的证书,所以我们在每周一的中午12点检查一次即可!

0 12 * * 1 /usr/bin/certbot renew --quiet

# or with log

0 12 * * 1 /usr/bin/certbot renew >> /var/log/cerbot.log

补充:

renew的时候报错的解决办法

ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.

rpm --query centos-release  # centos-release-7-3.1611.el7.centos.x86_64
wget ftp://ftp.muug.mb.ca/mirror/centos/7.3.1611/cloud/x86_64/openstack-mitaka/common/pyOpenSSL-0.15.1-1.el7.noarch.rpm
rpm -Uvh pyOpenSSL-0.15.1-1.el7.noarch.rpm
yum install certbot
certbot renew

标签: ssl, https, nginx, encrypt, certbot

本文由 老高 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。
可自由转载、引用,但需署名作者且注明文章出处。

相关文章

已有 5 条评论

  1. 老高你好,遇到一个问题,请教一下,非常感谢!

    yum install -y epel-release 运行没问题
    yum install -y certbot 找不到certbot

    错误信息:
    Loaded plugins: fastestmirror
    Setting up Install Process
    Loading mirror speeds from cached hostfile

    base: mirrors.ocf.berkeley.edu epel: mirror.sfo12.us.leaseweb.net extras: mirror.keystealth.org updates: mirrors.sonic.net
    No package certbot available.
    Error: Nothing to do
    1. centos 6 ?

      1. david david

        centos7也是这样,加过epel-release了,repo如下:[root@host yum.repos.d]# yum repolist
        已加载插件:fastestmirror
        Loading mirror speeds from cached hostfile

        base: mirror.lax.hugeserver.com elrepo-kernel: elrepo.org extras: mirror.sigmanet.com updates: mirror.hmc.edu
        源标识 源名称 状态
        base/7/x86_64 CentOS-7 - Base 9,590+1
        centos-sclo-rh/x86_64 CentOS-7 - SCLo rh 5,899
        centos-sclo-sclo/x86_64 CentOS-7 - SCLo sclo 444
        elrepo-kernel ELRepo.org Community Enterprise Linux Kernel Repository - el7 33
        extras/7/x86_64 CentOS-7 - Extras 227
        nodesource/x86_64 Node.js Packages for Enterprise Linux 7 - x86_64 50
        updates/7/x86_64 CentOS-7 - Updates 736+3
        repolist: 16,979
        1. wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
          yum install epel-release-latest-7.noarch.rpm

          试一试

  2. 膜拜大神

添加新评论