acme+letsencrypt生成tls证书
获取 TLS 证书
最近干些事情需要用到 tls 证书,虽说用 mkcert 自签一个证书也可以,但最后还是需要一个可以在公网上使用的证书
于是花了一些时间把这个搞定了
申请域名
想要申请 tls 证书,那肯定需要有一个域名,我还是在 namesilo(https://www.namesilo.com/) 上买了一个便宜的域名
就跟之前搭博客时一样,花点钱买了个一年的域名
申请了域名之后别忘了在 DNS 解析中添加一条A记录指向需要的地址
使用 acme.sh 获取证书
https://github.com/acmesh-official/acme.sh
跟着官方的文档就可以完成的差不多
安装 acme.sh
1 |
|
执行source ~/.bashrc
命令确保命令都可以生效
Arch Linux 在使用时可能会缺少依赖,碰到了就看看需要安装那些
我在使用时碰到了没有安装 socat,安装一下即可
1 |
|
我用的是 letsencrypt 来认证,免费的: https://letsencrypt.org/
也可以用 ZeroSSL https://zerossl.com
acme 官方的默认 CA 是 ZeroSSL,但是它老是抽风,容易申请失败,所以后面我还是用了 letsencrypt
执行如下命令申请证书
1 |
|
- -d 后面跟刚刚买的域名
- -k ECC密钥长度有三个可选: ec-256 ec-384 ec-521
- –server 选择 letsencrypt 来获取证书,默认是用 ZeroSSL 来的,不过日常抽风…
更新证书
由于 letsencrypt 的证书有效期只有3个月,因此90天内至少要更新一次证书,acme.sh 会每 60 天自动更新证书,但也可以手动更新
手动更新执行
1 |
|
导出证书和密钥
将获取到的证书和密钥到出来就可以使用了,更新后的证书也是要重新导出的
1 |
|
这样就可以愉快的使用证书了 ξ( ✿>◡❛)▄︻▇▇〓▄︻┻┳═一
弄了一上午,可算是把 tls 证书搞定了,用起来很舒适,下次还会再来 (❛◡❛✿)
弄完了证书,又可以继续学习我的 golang 了 (๑¯∀¯๑)