063.泛域证书Certbot

# 063.泛域证书Certbot

不等不靠,有囧有料。为质量和风险买单,不卖呆儿。

有关ssl证书的一期,先监控证书过期时间,用钉钉通知。

再演示certbot申请泛域名(wildcard domain)证书

和单域证书的自动更新。

@史荣久 / 2018-06-25 / CC-BY-SA-3.0

## 观看视频

* [腾讯视频(被转720P)](https://v.qq.com/x/page/c0702ass0rj.html)

* [百度网盘(原始1080P)](https://pan.baidu.com/s/1iTaf1nU1X0wZWYQklktiZQ)

## 内容摘要

* 监控ssl证书过期时间,使用钉钉群机器人通知。

* 泛域(*.moilioncircle.com),裸域(moilioncircle.com)的ssl证书申请。

* certbot 和 certbot-auto 有那么点区别。

* 钉钉群机器人,建立一个人的群(只通知给自己)。

* 通过真实访问(非pem文件),查看证书过期时间。

* curl openssl 命令。

## 参考资料

* 欧盟《通用数据保护条例》(简称GDPR)将于2018年5月25日生效

* [泛域证书,通配符证书](https://www.jianshu.com/p/c5c9d071e395)

* [全站 HTTPS 支持](http://blog.zengrong.net/post/2650.html)

* [Let’s Encrypt](https://letsencrypt.org/)

* [Certbot](https://certbot.eff.org/)

* [自动更新](https://certbot.eff.org/docs/using.html#renewal)

* [单个域更新](https://stackoverflow.com/questions/42591165/how-to-renew-only-one-domain-with-certbot)

* [钉钉群机器人](https://open-doc.dingtalk.com/docs/doc.htm?treeId=257&articleId=105735&docType=1)

## 脚本摘要

``` bash

certbot --version #certbot 0.25.0

sudo certbot -d 'moilioncircle.com' -d '*.moilioncircle.com' \

--manual --preferred-challenges dns-01 \

--server https://acme-v02.api.letsencrypt.org/directory \

certonly

sudo certbot renew \

--dry-run

--post-hook="service nginx reload"

## 检查证书

now_epoch=$( date +%s )

expiry_date=$( echo | \

openssl s_client -showcerts -servername $domain \

-connect $domain:443 2>/dev/null \

| openssl x509 -inform pem -noout -enddate \

| cut -d "=" -f 2 )

echo -n " $expiry_date";

expiry_epoch=$( date -d "$expiry_date" +%s )

expiry_days="$(( ($expiry_epoch - $now_epoch) / (3600 * 24) ))"

```

``` nginx

ssl on;

ssl_certificate /data/letsencrypt/live/moilion.com/fullchain.pem;

ssl_certificate_key /data/letsencrypt/live/moilion.com/privkey.pem;

# 指定 webroot 路径

location /.well-known {

root /var/www/html/;

}

```

## 欢迎围观

``` java

if (you.accept(MoilionCircle.SPIRIT)) {

if(you.haveADL()){

MoilionCircle we = you.search(MoilionCircle.SLOGAN);

we.welcome(you);

}

if(you.share(this)){

We.thank(you);

We.mayFind7Moilion();

}

}

```

## 后记

说到数据安全和个人信息保护就心塞,几乎少有人买单。

我是不是有被迫害妄想症,密码要用16位英数大小写的:D

----

题图:Certbot的官方网站,发现其代码注释很有气质。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180626G1TB8L00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券