使用 acme.sh 申请Let's Encrypt 通配符证书

1、安装acme.sh

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

2、使用dns API得方式申请证书
dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证.
acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成.
以 dnspod 为例, 你需要先登录到 dnspod 账号, 生成你的 api id 和 api key, 都是免费的. 然后:

export GD_Key="e2ndjW9X6_415njLoZNx6f719WSQ"
export GD_Secret="41QxgoBeYECbPtcE"

/root/.acme.sh/acme.sh --issue --dns dns_gd -d 0xsyshell.com -d '*.0xsyshell.com'

证书就会自动生成了. 这里给出的 api id 和 api key 会被自动记录下来, 将来你在使用 dnspod api 的时候, 就不需要再次指定了. 直接生成就好了
3、安装到我们指定的位置,并与nginx关联,达到自动更新证书得目的

mkdir /data/ssl
/root/.acme.sh/acme.sh --installcert -d 0xsyshell.com --key-file  /data/ssl/0xsyshell.com.key --fullchain-file /data/ssl/0xsyshell.cer --ca-file /data/ssl/0xsyshell.com.ca.cer --reloadcmd "/usr/local/openresty/nginx/sbin/nginx -s reload"

4、在nginx中server模块内配置如下:

··· #省略部分配置
ssl_session_timeout  5m;
ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers   on;
ssl_certificate /data/ssl/0xsyshell.com.cer;
ssl_certificate_key  /data/ssl/0xsyshell.com.key;
ssl_trusted_certificate /data/ssl/0xsyshell.com.ca.cer;
···

猜你喜欢

转载自blog.51cto.com/darren88/2399810