使用acme.sh配置SSL证书并自动续签

本文介绍了如何在Ubuntu22.04系统中使用acme.sh生成免费SSL证书,包括安装、设置DNS自动模式、获取阿里云API密钥、自动续签及Nginx部署步骤。
摘要由CSDN通过智能技术生成

使用acme.sh配置SSL证书并自动续签

参考官网

Home · acmesh-official/acme.sh Wiki (github.com)

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

支持多个ssl签发平台,如Let’s Encrypt (letsencrypt.org)Free SSL Certificates and SSL Tools - ZeroSSL

本文使用Let’s Encrypt

准备环境:

  • 域名
  • Linux版本Ubuntu22.04
  • 代理服务器Nginx1.18.0
  • acem.sh

下载安装acme.sh

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

使用这个安装干了些啥

  • 部署acme.sh程序到用户文件夹

  • 为脚本创建新名称 acme.sh=~/.acme.sh/acme.sh

    需重启终端,不想重启的话 .acme.sh# alias acme.sh=~/.acme.sh/acme.sh

  • 创建一个每日定时任务,用于自动更新即将过期的证书

    通过crontab -l 查看:

    18 18 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
    

安装后目录

account.conf  acme.sh  acme.sh.env  deploy  dnsapi  http.header  notify

具体命令可查看官网

使用acme.sh配置ssl证书

直接指向项目

acme.sh --issue -d example.com -d test.com -w /var/www/project

-d参数指定域名,多个域名使用多个-d参数,第一个-d参数指定的域名即证书的主体名称,其它-d参数指定的域名为证书的可选主体名称。

-w参数指定的是域名的webroot目录,以example.com为例,-w参数的值即是http://example.com对应的webroot目录。如果使用多个-d参数同时指定了多个域名,则所有这些域名必须对应同一个webroot目录;另外,当前系统用户必须具有webroot目录的写入权限。

DNS自动模式(建议)

此方法会向域名解析平台添加一个TXT记录值,需要提供对应平台的Key和Secret,具体参考acme.sh/dnsapi/dns_ali.sh at master · acmesh-official/acme.sh (github.com) 我使用的是dns_ali。

#切换默认平台为letsencrypt 其他更换最后平台即可
acme.sh --set-default-ca --server letsencrypt

默认的签发平台是ZeroSSL,我使用的时候想着就用默认的平台,可是一直报错 et authz objec with invalid status, please try again later. github上有人说是ZeroSSL的dns身份认证出问题了。This domain won’t issue · Issue #4991 · acmesh-official/acme.sh (github.com) 所以我换成了用letsencrypt

获取阿里云的Key和Secret,添加到系统环境变量

export Ali_Key="*******************"
export Ali_Secret="*********************"

生成证书

acme.sh --issue --dns dns_ali -d example.com -d www.example.com

该命令从系统变量中读取aliyun的api授权ID和密码,并通过dns_ali参数指定DNS提供商为阿里云。该命令将通过api自动为指定域名添加txt记录,并在验证完毕后自动移除txt记录。

aliyun的api授权ID和密码将被保存在.acme.sh的账户配置文件中,以供将来自动更新证书时使用,存储位置为:

~/.acme.sh/account.conf

通过 --install-cert部署证书

acme.sh --install-cert -d *.example.com \
--key-file       /etc/nginx/ssl/in/example.com.key  \
--fullchain-file /etc/nginx/ssl/fullchain.cer \
--reloadcmd     "nginx -s reload"

使用 acme.sh --list查看证书列表

Main_Domain   KeyLength  SAN_Domains  CA               Created               Renew
*.ihuadz.top  "ec-256"   ihuadz.top   LetsEncrypt.org  2024-02-18T04:06:07Z  2024-04-17T04:06:07Z

Nginx 部署

在项目对应的Nginx配置文件中添加

server {
    listen 443 ssl;
    server_name blog.ihuadz.top;
    root /var/www/hexo;
 
    ssl_certificate "/etc/nginx/ssl/ihuadz.top/fullchain.cer";
    ssl_certificate_key "/etc/nginx/ssl/ihuadz.top/*.ihuadz.top.key";
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
}

访问https://blog.ihuadz.top ok。没问题

不同的项目配置不同的域名和路径即可,使用泛域名的话就不用重新申请证书

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Acme.sh是一个开源的脚本工具,可以帮助用户实现自动化的证书管理,包括SSL/TLS证书的获取、更新和部署,支持Let's Encrypt等公共CA中心。QNAP则是一款NAS网络存储设备,具有数据备份、远程访问等功能,同时也支持安装插件扩展其功能。Acme.sh和QNAP的结合,可以为QNAP设备提供快速、便捷的证书管理工具,保障其数据传输安全和隐私保护。安装Acme.sh后,用户只需要一条简单的命令,就可以自动获取证书并进行更新和部署,同时通过QNAP自带的Web服务器或Web Station功能,可以实现HTTPS协议下的安全访问和数据传输,提升数据安全级别。此外,Acme.sh还提供了多种验证方式,比如DNS、HTTP、TLS、TLS-ALPN等,可以应对不同证书申请场景,提高证书获取的成功率。总之,Acme.sh和QNAP的结合,在保证数据安全的同时,也为用户提供了更多的便利和灵活度,是QNAP用户的不错选择。 ### 回答2: Acme.sh是一个在Linux系统中自动化申请和更新Let's Encrypt SSL证书的工具,它可以简化证书的管理过程,让SSL证书的部署更加简单和快捷。而QNAP则是一个网络存储设备的品牌,其设备多用于小型企业和家庭用户存储数据、共享数据等。 在Acme.sh和QNAP的结合下,用户可以在QNAP设备上自动化申请Let's Encrypt SSL证书,以保障QNAP设备上的数据传输安全。此外,使用Acme.sh与QNAP结合还可以方便地管理SSL证书的更新和扩展,减少了用户可能遇到的与证书管理相关的问题。 总的来说,Acme.sh与QNAP的结合为用户提供了一种更加简单、安全、可靠的SSL证书管理解决方案,这对于需要在QNAP设备上存储敏感数据的用户来说是非常有价值的。 ### 回答3: Acme.sh是一款高效、易用的SSL证书自动化管理工具,而QNAP则是一家以网络存储为主的制造商。acme.sh qnap可以理解为在QNAP设备上安装并配置acme.sh以便自动化管理SSL证书。 在QNAP设备上使用acme.sh,可以实现自动化地获取和更新SSL证书,使得网站的安全性得到保证。使用acme.sh的好处是它的支持范围非常广,可以与各种不同类型的Web服务器、CDN和DNS服务集成,方便快捷。 而且,acme.sh非常灵活,你可以在控制台中直接运行它,也可以使用脚本进行扩展。如果你是一名开发人员或系统管理员,那么acme.sh一定会帮助你更快更高效地管理SSL证书。 总之,acme.sh qnap是一种非常实用的工具,可以使得SSL证书管理更加简单方便,同时也能提高网站的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值