使用acme.sh申请CA证书
前情提要:我的服务器系统装的是Debian 9,并装有nginx。
安装acme.sh
下载脚本并安装
1
curl https://get.acme.sh | sh
进入acme.sh的目录
1
~/.acme.sh/
将本目录里的为acme.ch映射一个全局别名
acme.sh
,方便在其他路径下也能执行该脚本1
alias acme.sh=~/.acme.sh/acme.sh
生成证书
- 关闭nginx或其他占用
80
端口的应用或服务,nginx可以这样操作:
1 | nginx -s stop |
- 生成证书(官方的做法其实并不是这个,这个我是从一篇安装harbor的教程里看到的,但因为我觉得这个写起来更简单些,我这里用这种方法)
1 | sh acme.sh --issue -d www.xxx.com --standalone #这里的-d后面接的就是你想要为其申请CA证书的域名 |
证书生成了三种:普通证书、中级证书和完整链条证书,我在看官方教程之前放的是普通证书,在写教程的时候才发现准确来说应该放完整链条证书。
把证书的路径配置到nginx里(这里是我主域名,即www域名的配置):
1 | server { |
因为偷懒所以我就没按照官方的建议把证书放到其他位置
- 再启动nginx:
1 | nginx -s reopen |
使acme.sh自动升级
作者原话:
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
1 | acme.sh --upgrade --auto-upgrade |
结尾
大致就是这个样子,感觉应该也没有什么要补充的了。