使用acme.sh免费生成ssl证书

安装acme

acme.sh开源地址:

GitHub - acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocolhttps://github.com/acmesh-official/acme.sh

安装命令

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

离线安装包

注意


安装目录默认当前用户的根目录,普通用户:/home/用户/.acme.sh/;root用户:/root/.acme.sh

设置快捷方式(可选)

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

 切换获取证书的默认库

切换 Let's Encrypt(推荐)
acme.sh --set-default-ca --server letsencrypt
切换 Buypass
acme.sh --set-default-ca --server buypass
切换 ZeroSSL
acme.sh --set-default-ca --server zerossl
切换 SSL.com
acme.sh --set-default-ca --server ssl.com
切换 Google Public CA
acme.sh --set-default-ca --server google


默认从ZeroSSL获取证书切到letsencrypt申请证书 ZeroSSL不太稳定

生成证书及使用


证书生成

sh acme.sh --issue -d www.domain.com --webroot /usr/share/nginx/html


生成成功标识:

3YSvz5BVh+DlGH4lcWnlrq/vx4inOODH7yOXK/81XsrBs+qc3WYIIIbJS3EAmfyd
ArcadQdHrSgc+Y3rwgMJm3w/OObnLfaiD+n8JBRmgOkQU7ozEdR+BsqWNB8NQ9ke
kMpdK7zK1DjvMMstBtwVGvsblBnHOo9LVvCtvhhzU3jYaIjE9NdBR3K7XKYagkNy
0RK5fAJ7oGmwlQM1ZGQizm05Yhm38PPTbVxi
-----END CERTIFICATE-----
[2022年 06月 07日 星期二 00:31:20 CST] Your cert is in: /home/tech1/.acme.sh/www.domain.com/www.domain.com.cer
[2022年 06月 07日 星期二 00:31:20 CST] Your cert key is in: /home/tech1/.acme.sh/www.domain.com/www.domain.com.key
[2022年 06月 07日 星期二 00:31:20 CST] The intermediate CA cert is in: /home/tech1/.acme.sh/www.domain.com/ca.cer
[2022年 06月 07日 星期二 00:31:20 CST] And the full chain certs is there: /home/tech1/.acme.sh/www.domain.com/fullchain.cer

示例域名:www.domain.com
当前域名80端口访问的根目录:/usr/share/nginx/html,用于验证域名

证书使用(证书解析容器可用格式)

nginx

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


解析成功标识:

[2022年 06月 07日 星期二 00:31:20 CST] Installing key to: /etc/ssl/acme/domain.key
[2022年 06月 07日 星期二 00:31:20 CST] Installing full chain to: /etc/ssl/acme/domain.pem
[2022年 06月 07日 星期二 00:31:20 CST] Run reload cmd: service nginx force-reload
Redirecting to /bin/systemctl force-reload nginx.service
[2022年 06月 07日 星期二 00:31:20 CST] Reload success

 证书续期


由于证书有效期只有90天,所以需要编写定时任务,每两月做一次续期


编写定时任务


定时任务示例:

vim createssl.sh
#! /bin/bash

#生成证书并验证, --force强制更新,默认60天更新一次
echo "creat acme"

sh acme.sh --issue -d www.domain.com --webroot /usr/share/nginx/html/dist --force

#将证书解析为nginx可用的
echo "to nginx"

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

#nginx重新加载配置

nginx -s reload


 脚本赋权

chmod 777 createssl.sh


 配置定时任务



配置编辑
crontab -uroot -e
0 0 1 * * "/etc/ssl//createssl.sh" > /dev/null

其他当时任务命令:
systemctl stop crond #关闭crontab服务
systemctl start crond #开启crontab服务
systemctl restart crond #重启crontab服务
tail -f /var/log/cron #打印crontab日志(默认打印10条)
crontab -uroot -e 
#编辑crontab服务,配合insert esc :wq(保存退出) :q!(不保存退出)等指令
crontab -l #列出crontab任务列表
```

acme 脚本更新


目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.

升级 acme.sh 到最新版 :

acme.sh --upgrade

如果你不想手动升级, 可以开启自动升级:

acme.sh  --upgrade  --auto-upgrade

之后, acme.sh 就会自动保持更新了.

你也可以随时关闭自动更新:

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

错误查看:
 acme.sh  --issue  .....  --debug 
 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海东青ZYJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值