用 acme.sh 免费为网站域名申请 SSL 证书开启 Https 并自动续期

用 acme.sh 免费为网站域名申请 SSL 证书开启 Https 并自动续期

William
2022-03-29 / 0 评论 / 26 阅读 / 正在检测是否收录...

acme.sh

为什么要给网站开启 Https,做网站的应该都知道吧,哪怕不是站长应该有略有所闻,没有 https 证书的网站,浏览器打开时会提示不安全,很多时候大家看到提示不安全都会关闭,这对网站来说是一件非常糟糕的事情,另外对于需要用到支付功能的网站,没有 https 更加不安全。

如果你想搞微信小程序,没有不仅要开启 https,TLS 最低还得是 1.2版本。

安装 acme.sh

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

脚本会自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书

安装以后默认会给 acme.sh 生成别名,如果执行 acme.sh 报错 not found。需执行

source ~/.bashrc

手动 alias 命令 (没有alias的可手动添加):

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

另外,acme.sh 已经被 ZeroSSL 商业收购, acme.sh 更改默认申请证书的服务商为 ZeroSSL。商业公司的数据可能说卖就卖了

所以最好更改一下默认 CA 颁发机构,更改默认证书颁发机构为 letsencrypt

acme.sh --set-default-ca --server letsencrypt

如果服务器还没有运行任何 web 服务, 80 端口是空闲的是,那就使用 standalone 模式,还需要另外安装 socat

Debian / Ubuntu

apt update -y && apt install -y socat

CentOS

yum update -y && yum update -y && yum install -y socat

申请证书及密钥

如果不替换默认CA,使用 zerossl 的话,需要先注册

acme.sh --register-account -m xxxx@gmail.com

申请 Let's Encrypt 的直接从下面开始执行

acme.sh  --issue -d 你的域名 --standalone

如果前面没有更换默认CA,也可以在申请时指定

acme.sh  --issue -d 你的域名 --server letsencrypt --standalone 

下载证书及密钥

下载后,在 root 根目录下,会有一个 cert.crt 和 private.key 文件

acme.sh --install-cert -d 你的域名 --key-file /root/private.key --fullchain-file /root/cert.crt

撤销证书,使用:

acme.sh --list
acme.sh --revoke -d mydomain.com

删除证书,使用:

acme.sh --list
acme.sh --remove -d mydomain.com

更新 acme.sh

升级acme.sh到最新版:

acme.sh --upgrade

开启自动升级:

acme.sh  --upgrade  --auto-upgrade

关闭自动更新:

acme.sh --upgrade  --auto-upgrade  0
0

评论 (0)

取消