电脑装配网

用acme.sh给网站域名,申请免费SSL永久证书(自动续期)

 人阅读 | 作者lilintao | 时间:2024-03-15 11:21

一:简介

申请ssl证书,即https有很多,有免费的,也有收费的。如第三方域名管理cloudflare也可以自动添加使用https,而且永久。

但是由于有些服务,需要在服务器使用自签证书,所以需要自己申请。免费的可以使用certbot,也可以是使用zeroSSL。

Cerbot可以参考我以前的文章:Certbot申请免费SSL证书

这里,介绍使用acme.sh生成免费的ssl证书,其完整实现了acme协议,并且由纯Shell脚本语言编写,没有过多的依赖项,安装和使用都非常方便。

对于zerossl官网,需要指出的是,用户可以在控制台直接申请证书,但免费用户最多只能申请3个,而使用ACME申请zeroSSL证书则没有数目限制。

acme.sh官方gitlhub地址: https://www.dnzp.com/uploads/allimg/240315/zd3gfvlwzj1.php; }}p>配置域名目录为/www/test.ywbj.cc,在此目录创建一个index.html文件测试,然后重启nginx。

配置完,浏览器打开test.ywbj.cc,可以看到域名提示不安全,没有https.

目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心。你也可以更改这个。

安装证书时,已经自动在crontab定时任务添加了任务。

crontan -l查看定时任务,可以看到acme.sh的定时任务。

crontan -l2 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

到这里,nginx的ssl自签证书就已经完成了。

六:acme.sh其他命令(扩展)

1:查看已安装证书信息

acme.sh --info -d example.com# 会输出如下内容:DOMAIN_CONF=/root/.acme.sh/example.com/example.com.confLe_Domain=example.comLe_Alt=noLe_Webroot=dns_aliLe_PreHook=Le_PostHook=Le_RenewHook=Le_API=https://acme-v02.api.letsencrypt.org/directoryLe_Keylength=Le_OrderFinalize=https://acme-v02.api.letsencrypt.org/acme/finalize/23xxxx150/781xxxx4310Le_LinkOrder=https://acme-v02.api.letsencrypt.org/acme/order/233xxx150/781xxxx4310Le_LinkCert=https://acme-v02.api.letsencrypt.org/acme/cert/04cbd28xxxxxx349ecaea8d07Le_CertCreateTime=1649358725Le_CertCreateTimeStr=Thu Apr 7 19:12:05 UTC 2022Le_NextRenewTimeStr=Mon Jun 6 19:12:05 UTC 2022Le_NextRenewTime=1654456325Le_RealCertPath=Le_RealCACertPath=Le_RealKeyPath=/etc/acme/example.com/privkey.pemLe_ReloadCmd=service nginx force-reloadLe_RealFullChainPath=/etc/acme/example.com/chain.pem

2:更新 acme.sh

#升级 acme.sh 到最新版 :acme.sh --upgrade#如果你不想手动升级, 可以开启自动升级,之后, acme.sh 就会自动保持更新了.acme.sh --upgrade --auto-upgrade#你也可以随时关闭自动更新:acme.sh --upgrade --auto-upgrade 0

3:颁发ECC证书

单域ECC证书

acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256

SAN多域ECC证书

acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256

keylength上面的参数。

有效值为:

ec-256(prime256v1,“ECDSA P-256”)

ec-384(secp384r1,“ECDSA P-384”)

ec-521(secp521r1,“ECDSA P-521”,Let's Encrypt 尚不支持。)

4:更新证书

自己更新证书

#强制更新证书:acme.sh --renew -d example.com --force#或者,对于 ECC 证书:acme.sh --renew -d example.com --force --ecc

要停止更新证书,您可以执行以下操作从更新列表中删除证书:

acme.sh --remove -d example.com [--ecc]

证书/密钥文件不会从磁盘中删除。

您可以自己删除相应的目录(例如~/.acme.sh/example.com)。


文章标签:

本文链接:『转载请注明出处』