acme.sh生成letsencrypt泛域名证书并配置nginx

2018-11-01 1855点热度 0人点赞 0条评论

参考文档

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;
}

王显锋

激情工作,快乐生活!

文章评论