建站,搞机记录,VPS

部署acme.sh,申请免费SSL证书

acme.sh部署

安装acme.sh,email改成自己的

curl https://get.acme.sh | sh -s email=my@example.com

安装完成后尝试输入acme.sh检查命令是否有效

显示找不到该命令,再执行一次以下命令,创建 一个 shell 的 alias。

alias acme.sh=~/.acme.sh/acme.sh

再尝试输入acme.sh -v检查命令是否有效

到此acme.sh已部署OK了

证书申请

使用域名解析商提供的 api 自动添加 txt 记录完成域名验证

以 dnspod 为例, 你需要先登录到 dnspod 账号, 生成你的 api id 和 api key, 都是免费的. 然后:

export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

可以切换为CA证书

acme.sh --set-default-ca --server Let's Encrypt
acme.sh --set-default-ca --server ZeroSSL

生成证书,支持泛域名或多域名证书申请

acme.sh --issue --dns dns_dp -d *.aa.com -d www.aa.com

copy/安装 证书

前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.

注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.

正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如在Nginx:

acme.sh --install-cert -d example.com \
--key-file       /etc/nginx/ssl/key.pem  \
--fullchain-file /etc/nginx/ssl/cert.pem \
--reloadcmd     "service nginx force-reload"

更新证书

目前证书在 60 天以后会自动更新, 你无需任何操作

请确保 cronjob 正确安装, 看起来是类似这样的:

crontab  -l

查看已安装证书信息

acme.sh --info -d example.com

一键部署

Github项目地址

一键脚本

wget -N --no-check-certificate https://raw.githubusercontents.com/354770288/acme-1key/master/acme1key.sh && bash acme1key.sh

image

参考链接

说明 · acmesh-official/acme.sh Wiki (github.com)
本文来源于互联网,著作权归作者 [  ] 享有,本文仅供个人学习、研究和欣赏使用,如有异议,请联系站务及时处理。

发表留言