Acme.sh 一时爽,一直Acme.sh一直爽。目前我的服务器是 Nginx-Tengine,可能是以前我一直没搞懂这个ssl证书的格式,所以导致某些项目的API没法请求,但是网页能正常访问….

 

首先先安利一波 Acme.sh 一键泛解析证书+自动续期!

第一步先去 Github 给这个项目一个Star

 

从现在开始,仅需一条命令,一瞬享受Acme.sh带来的快感!

curl  https://get.acme.sh | sh

 

介绍一下 Acme.sh 以及它的好处

Acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书,创建完成证书之后 Acme.sh 会自动为你创建 Cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书,简直就是懒人的福音!

 

使用 Acme.sh 生成证书

这里本人还是非常推荐使用DNS验证的,因为 DNS 方式的真正强大之处在于可以使用域名解析商提供的 API 自动添加 txt 记录完成验证,而 Acme.sh 却具备使用API的方式自动添加和删除 DNS 验证解析,完全不必再登录域名解析商的控制台手动添加再手动删除,当然,在此之前您可能需要先配置您所在使用的域名解析商的 API 才可以方便以后的享受,而且 Acme.sh 目前支持 Cloudflare, Dnspod, Cloudxns, Godaddy 以及 Ovh 等数十种解析商的自动集成,这里仅以 Dnspod 为例来介绍配置及生成方法。

 

你需要先登录到 Dnspod 账号, 生成你的 ID 和 Token,登录之后转到 用户中心 > 安全设置 并开启 API Token 之后点击 查看 > 创建API Token 填入名称之后即可获取到 Token,然后:

 

export DP_Id="1234" #这里填写 ID
export DP_Key="sADDsdasdgdsf" #这里填写 Token
acme.sh --issue --dns dns_dp -d example.com -d *.example.com

 

证书就会自动生成了,这里给出的 ID 和 Token 会被自动记录下来, 将来你在使用 Dnspod API 的时候, 就不需要再次配置,直接生成就好了。

 

诶,似乎跑题了…打扰了。
回到正题,安装证书是要包过填写 密钥( KEY ) 以及 证书( PEM格式 ),我之前的错误示范是 KEY 写的 example.com.key , PEM 写的 example.com.cer + example.com.key,真实窒息…

 

正确的方法:

 

KEY 填写 example.com.key

PEM 填写 example.com.cer + ca.cer

 

希望大家不要再像我一样犯错了….告辞!