参考文档
https://www.jianshu.com/p/dbe180979e77
官方文档
https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
安装 acme.sh
curl https://get.acme.sh | sh
注:将会安装到 ~/.acme.sh/ 目录下,以后所有的配置默认也在这个目录下
使用 token 生成证书
acme.sh 支持直接使用主流 DNS 提供商的 API 接口来完成域名验证以及一些相关操作,这里使用阿里云,首先获取自己的阿里云API Key: https://ak-console.aliyun.com/#/accesskey
之后在终端配置文件中设置:
export Ali_Key="xxxxxx"
export Ali_Secret="xxxxxxxx"
之后直接使用如下命令发起申请:
acme.sh --issue --dns dns_ali -d aiuyo.com -d *.aiuyo.com
Ali_Key 和 Ali_Secret 将被保存在 ~/.acme.sh/account.conf , 命令中 dns_ali 指明使用 阿里的dns,注意这里第一个域名为顶级域名,后面个为泛域名。
这种方式将自动为你的域名添加一条 txt 解析,验证成功后,这条解析记录会被删除,所以对你来说是无感的,就是要等 120秒。
证书生成成功后,默认保存在 .acme.sh/aiuyo.com 中。包含如下文件:
[root@aiuyo ssl]# ll /root/.acme.sh/aiuyo.com/
total 32
-rw-r--r-- 1 root root 1911 Jun 19 14:28 aiuyo.com.cer
-rw-r--r-- 1 root root 788 Jun 19 14:28 aiuyo.com.conf
-rw-r--r-- 1 root root 980 Jun 19 14:27 aiuyo.com.csr
-rw-r--r-- 1 root root 220 Jun 19 14:27 aiuyo.com.csr.conf
-rw-r--r-- 1 root root 1679 Jun 19 14:27 aiuyo.com.key
drwxr-xr-x 2 root root 4096 Jun 19 14:28 backup
-rw-r--r-- 1 root root 1648 Jun 19 14:28 ca.cer
-rw-r--r-- 1 root root 3559 Jun 19 14:28 fullchain.cer
copy/安装 证书
注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.
正确的使用方法是使用 --installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:
acme.sh --installcert -d aiuyo.com \
--key-file /etc/nginx/ssl/aiuyo.com.key \
--fullchain-file /etc/nginx/ssl/fullchain.cer \
--reloadcmd "service nginx force-reload"
执行之后在/etc/nginx/ssl/目录生成2个文件:
[root@aiuyo ssl]# ll
total 8
-rw------- 1 root root 1679 Jun 19 14:28 aiuyo.com.key
-rw-r--r-- 1 root root 3559 Jun 19 14:28 fullchain.cer
配置nginx使用https证书
Nginx 的配置 ssl_certificate 和 ssl_trusted_certificate 使用 fullchain.cer
nginx配置文件目录:
/etc/nginx/conf.d/default.conf
https配置示例:
server{
listen 443 ssl;
server_name *.aiuyo.com;
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/aiuyo.com.key;
}
文章评论