[2019-08-03 19:33:39 最后更新]
[ssl/https]golang 中的 acme 自动请求 Let's Encrypt ssl 安全证书
总是手动更新确实无聊,查看了一个 golang 中也有自动更新的方法。测试了一天下来,觉得 ... 代码太不清晰了,封装得太厉害,想拿来修改一下的可能性太低了。
不过还是记录一下相关知识吧,以便将来。
1.
ECDSA -- 我才知道 rsa 算法居然也快过时了,现在想用这个算法来代替它。
2.
参考 https://www.ctolib.com/topics-124506.html 可知道这种库还挺多的,官方的是 "x/crypto/acme/autocert"
其中要下载好几个库,可以在 https://github.com/golang/crypto 这样的网址下载(因为官网国内上不了).
另外至少需要 go 10.1 版本及以上才行 ... 唉.
使用例子还可以参考 https://studygolang.com/articles/10380
不过都太过复杂。
3.
这个请求的自动过程已经 rfc 标准化 RFC 8555
协议就叫 acme
4.
windows 下有一个工具
https://github.com/PKISharp/win-acme
下载 GitHub地址(https://github.com/Lone-Coder/letsencrypt-win-simple/releases) 并解压
5.
经过两次跳票,Let’s Encrypt 终于在社区宣布支持通配符证书
为了实现通配符证书,Let’s Encrypt 对 ACME 协议的实现进行了升级,只有 v2 协议才能支持通配符证书。
也就是说任何客户端只要支持 ACME v2 版本,就可以申请通配符证书了
注:rfc 上的就是ACME v2 版本了。参考 https://www.jianshu.com/p/c5c9d071e395
6.
官方文档 https://community.letsencrypt.org/t/acme-v2-production-environment-wildcards/55578
7.
golang 的 http 似乎有自己的映射功能 func Redirect(w http.ResponseWriter, req *http.Request)
8.
有份参考代码 https://github.com/kjk/go-cookbook/blob/master/free-ssl-certificates/main.go
https://blog.csdn.net/trustasia/article/details/75220878
9.
https://certbot.eff.org/lets-encrypt/nonunix-other
据说是官方的工具列表,在这里有很多自动下载工具的地址。
10.
从 rfc 协议来看,就是些 http 请求,并不算太复杂。
https://tools.ietf.org/html/rfc8555