跳转至主要内容
晴雨技术笔记

Let’s Encrypt 签发 IP 证书

杏川铭心 杏川铭心
发表于 2026年2月19日
  • 本文最后编辑于 28 天前。
  • Let’s Encrypt 在 2025 年正式支持了 IP 证书的签发。We’ve Issued Our First IP Address Certificate

    安装 acme.sh

    (半)官方的工具 certbot 目前似乎并不打算支持 IP 证书的签发,会告诉你一段老黄历:

    Certbot 不支持签发 Let's Encrypt 的 IP 证书。

    因此需要使用 acme.sh,这款工具目前已经支持了从 Let’s Encrypt 签发 IP 证书。

    安装命令为:

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

    如果使用 wget 则是:

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

    其中 my@example.com 需要替换成你自己的邮箱地址,主要是向 CA 注册使用。注意 acme.sh 不需要也不推荐使用 root 账户运行,因此运行上面的命令时务必不要添加 sudo。

    安装完成后会自动将 acme.sh 添加为一个 alias,因此无需制定完整路径运行,不过重新登录或运行 .bashrc 前是不生效的。

    配置 acme.sh 以使用 Let’s Encrypt

    因为 acme.sh 收了 ZeroSSL 的钱,因此现在默认使用的是 ZeroSSL。如果要使用 Let’s Encrypt 需要进行配置:

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

    签发证书

    Let’s Encrypt 目前仅支持为 IP 地址签发短周期证书,也就是说有效期默认是 6 天,不能签发那种 90 天的证书。尝试签发 90 天证书会看到类似“CA 没有接受你的请求”一类的错误。

    acme.sh --issue -d <IP 地址> -w <网站根目录> --certificate-profile shortlived --days 84

    特别要注意不要遗漏 --certificate-profile shortlived 这个参数,指的就是刚刚提到的短周期证书。

    另外 --days 84 这个参数也不要忘记了,不然 acme.sh 会很蠢蛋的在“证书过期前30天”帮你续期,问题是这是个短周期证书,但 acme.sh 还拿 90 天算的,结果就是你证书过期了好几十天之后才会帮你续期……

    至于为什么是“提前 84 天”我也不好说不过我可以告诉你的是这个数字最终出来的不是证书过期前半天续期而是过期前两天……

    签发之后 acme.sh 会自动添加一个 cronjob,因此无需手动配置自动续签。

    签发好的证书会放在一个类似 ~/.acme.sh/1.1.45.14_ecc/ 的文件夹里,当然具体什么路径请以实际为准。

    接下来就是去你的网页服务器里安装证书了。

    测试

    用 https://<你的 IP 地址> 的方式来访问网站,可以正常打开。查看证书信息:

    签发出的证书。

    注意到有效期确实是 6 天半。

    • 特别提醒:

      评论看到就会回,但是不保证速度,有的时候站长忘记看的话就会出现审核好几天也没有动静的情况……

      有垃圾评论检查,如果评论之后直接消失、没反应说明被识别为垃圾评论了。

      如果等不及的话,可以加群!

    杏川铭心
    杏川铭心

    群号:1101838302,欢迎友好交流 :P 曾用名Frank419(现在也是我在很多地方的用户名),网站站长。

    Let’s Encrypt 签发 IP 证书」上有 2 条评论

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注