由于国内服务器npm自动申请证书网络问题,加上一个个申请证书很麻烦,所以就想直接用acme脚本申请泛域名,下面主要是用dns_api来申请,在挂载到npm下面。新的同学不知道npm的可以看看:推荐一个nginx管理工具 Nginx Proxy Manager
介绍Let's Encrypt
Let's Encrypt是一个非常不错的域名证书机构,致力于普及https,现在早已能够签发泛域名证书(俗称“野卡”),而且还是免费的,要知道其它机构的泛域名证书可贵的很。
下面就简单介绍一下如何申请Let's Encrypt证书。
也可以参考官方说明:https://github.com/Neilpang/acme.sh。
1.安装acme.sh
服务器终端安装命令
curl https://get.acme.sh | sh -s email=my@example.com
2.生成证书
笔者主要是用的cloudflare,如果有用其他dns厂商的同学可以去github找一下对应的脚本:https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_cf.sh
获取 cloudflare API key
地址:https://dash.cloudflare.com/profile/api-tokens
设置 cloudflare API key
服务器终端输入一下命令
export CF_Key="cloudflare 中查看你的 key"
export CF_Email="你的 cloudflare 邮箱"
生成和安装证书
笔者这边主要用的最简单的命令,把证书生成到默认的目录下,理解后进阶操作可以参考官网文档,或者文中下面参考文档,指定证书目录、自动重启nginx等。
服务器终端输入一下命令
# zinzin.cc/*.zinzin.cc都换成自己的域名
./acme.sh --issue --dns dns_cf -d zinzin.cc -d *.zinzin.cc
最后拷贝文件到npm参考如上即可,参考:推荐一个nginx管理工具 Nginx Proxy Manager
3.最后
证书会自动更新,想查看可以通过 "crontab -l"命令
参考文献:
1. https://www.psay.cn/toss/126.html
2. https://blog.suzuhafan.com/tutorials/acmesh-use-cloudflare-to-create-ssl.html
评论区