使用acme sh(手动验证)生成Let‘s Encrypt 证书

本文详细介绍了如何在中国大陆环境下安装和使用acme.sh工具,以手动方式获取LetsEncrypt的免费SSL证书,包括DNS验证步骤,以及如何自动化证书续订过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用acme.sh(手动验证)生成Let’s Encrypt 证书

Let’s Encrypt —— 是一个由非营利性组织 互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA),简单的说,就是为网站提供免费的 SSL/TLS 证书。

acme.sh的安装

  • 方法1:
curl https://get.acme.sh | sh -s email=my@email.com

my@example.com 应该替换为你的真实电子邮箱地址。这个邮箱地址是用于Let’s Encrypt在需要时与你联系,例如在证书即将过期时发送提醒,或者在证书续期失败时通知你。

⚠️ 在中国大陆,由于网络环境的特殊性,直接访问国外资源可能会遇到困难。

  1. 使用国内的镜像站点来安装acme.sh。例如,使用阿里云的镜像:

    curl https://ghproxy.com/https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | INSTALL_ACME_SH_EXEC="sh" sh -s email=my@email.com
    

    或者使用清华大学TUNA镜像:

    curl https://cdn.jsdelivr.net/gh/acmesh-official/acme.sh@master/acme.sh | INSTALL_ACME_SH_EXEC="sh" sh -s email=my@email.com
    
    
  2. 安装脚本会自动执行,并使用你提供的邮箱地址来注册acme.sh。

  • 方法2:
wget -O -  https://get.acme.sh | sh -s email=my@example.com
  • 方法3:git安装
git clone https://github.com/acmesh-official/acme.sh.git
cd ./acme.sh
./acme.sh --install -m my@example.com

安装命令将执行3个操作:

1.创建并复制acme.sh到您的主目录 ( $HOME): ~/.acme.sh/。所有证书也将放置在此文件夹中。

2.创建别名:acme.sh=~/.acme.sh/acme.sh.

3.创建每日 cron 作业来检查并更新证书(如果需要)。

安装完成后重启终端生效,使用acme.sh -v获取到版本信息即安装成功

生成证书(手动模式)

使用acme.sh客户端来从Let’s Encrypt获取通配符证书的命令

 acme.sh --issue 
 --dns 
 --yes-I-know-dns-manual-mode-enough-go-ahead-please 
 --domain *.goodthing.com 
 --server https://acme-v02.api.letsencrypt.org/directory 
 --dnssleep 20 --keylength 2048
  • acme.sh --issue: 这是启动acme.sh脚本的命令,并告诉它执行“issue”操作,即获取证书。
  • -dns: 这表示acme.sh将使用DNS验证方式来证明你对域名的控制权。这意味着acme.sh将创建特定的DNS记录,然后Let’s Encrypt会检查这些记录是否存在以验证你的身份。
  • -yes-I-know-dns-manual-mode-enough-go-ahead-please: 这个长长的选项是确认你已经知道你正在使用DNS手动模式,并且理解如何手动配置DNS记录。在DNS手动模式下,acme.sh不会自动修改你的DNS记录,你需要手动添加所需的TXT记录。
  • -domain *.goodthing.com: 这指定你想要获取的证书的域名。在这里,你请求了一个通配符证书,这将匹配goodthing.com下的所有子域名。
  • -server https://acme-v02.api.letsencrypt.org/directory: 这告诉acme.sh使用Let’s Encrypt的ACME v2 API。这是Let’s Encrypt当前的官方API端点。
  • -dnssleep 20: 这个选项设置acme.sh在DNS验证后等待的秒数。由于DNS记录的传播可能需要一些时间,这个选项允许acme.sh在检查记录之前等待20秒。
  • -keylength 2048: 这指定了你想要生成的证书的RSA密钥长度。2048位是目前推荐的密钥长度,提供了很好的安全性。

会生成TXT记录
在这里插入图片描述

需要添加对应的TXT记录进行DNS验证

每次使用 acme.sh 脚本获取证书时,它都会生成一个唯一的 TXT 记录值,用于 DNS 验证。这个值是随机生成的,以确保安全性,并且每次请求证书时都会有所不同。

使用 acme.sh 脚本来自动化续订 Let’s Encrypt 证书

acme.sh --renew 
--dns 
--yes-I-know-dns-manual-mode-enough-go-ahead-please 
--domain *.goodthing.com 
--server https://acme-v02.api.letsencrypt.org/directory 
--dnssleep 20 
--keylength 2048
  • acme.sh --renew --dns:这个选项告诉 acme.sh 脚本使用 DNS 验证方式来续订证书。
  • -yes-I-know-dns-manual-mode-enough-go-ahead-please:这个选项是告诉 acme.sh 脚本继续执行,即使它提示您可能需要手动干预 DNS 验证过程。
  • -domain *.goodthing.com:这个选项指定了您想要续订的域名,这里是所有以 goodthing.com 结尾的子域名。
  • -server https://acme-v02.api.letsencrypt.org/directory:这个选项指定了 Let’s Encrypt 的 ACME 服务器 URL。
  • -dnssleep 20:这个选项设置了 DNS 验证前等待的时间,以秒为单位。这里设置为 20 秒。
  • -keylength 2048:这个选项指定了您想要生成的私钥的长度,这里是 2048 位。

然后就会在相应的位置生成证书了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值