---
title: "【教程】使用 Let's Encrypt 签发免费的 IP 地址证书"
date: 2025-12-19T07:50:31Z
modified: 2025-12-19T07:51:05Z
permalink: "https://www.appinn.com/letsencrypt-issue-ip-ssl-certificates/"
type: post
status: publish
excerpt: ""
categories:
  - 电脑技巧
tags:
  - 电脑技巧
  - IP地址
  - "Let's Encrypt"
  - 证书
featured_image: "https://www.appinn.com/wp-content/uploads/2025/12/Copy-of-appinn-homework-90.jpg"
author: 青小蛙
timestamp: 2025-12-19T07:51:05Z
---

**Let’s Encrypt** 在本周（2025年12月19日）开始正式提供 IP 地址证书的签发，依旧免费。
先不讨论 IP 证书有什么用，先实现签发 IP 证书这件事吧 😊

![](https://www.appinn.com/wp-content/uploads/2025/12/Copy-of-appinn-homework-90.jpg)

简单粗暴，直接开始。

> 以下教程以 Linux 为例，Windows 下请使用 wsl

## 注意

需要公网 IP 地址，需要 80/443 端口，无法为局域网签发（如果你有办法，请反馈给青小蛙）

另外，感谢 ㄞ 同学。

## 第一步：安装 / 升级 acme.sh

acme.sh 是著名的自动化证书签发程序，支持 Let’s Encrypt、ZeroSSL 等不同的证书提供商。


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


如果安装过，那么升级方式：`./acme.sh upgrade`

## 第二步：签发证书

### 第一种：独立方式

独立方式是服务器中本身没有 Web 服务，acme.sh 会自己运行一个 Web 服务来进行验证：


$ ./acme.sh --issue --server letsencrypt -d 64.23.194.105 --certificate-profile shortlived --days 3 --standalone


命令具体解析如下：

- **`./acme.sh`**：执行 `acme.sh` 脚本。
- **`--issue`**：申请一个新证书。
- **`--server letsencrypt`**：使用 Let’s Encrypt 服务器。
- **`-d 64.23.194.105`**：证书申请的目标是 IP 地址 `64.23.194.105`（该IP用于测试，已被删除）
- **`--certificate-profile shortlived`**：申请一个短期证书（最长90天？）。
- **`--days 3`**：证书的有效期是 3 天。
- **`--standalone`**：使用 `standalone` 模式验证，不依赖现有的 Web 服务器。（需要80/443端口）

关于最长期限，青小蛙测试了 60 天成功，所以应该还是 90 天。

### 第二种：服务器模式

服务器模式可以使用现有的服务器，比如已经在运行 Nginx，就可以直接用。好处是不中断现有服务。

感谢[烧饼](https://u.sb/acme-sh-ip-ssl/)，这里有一个最简的 Nginx 配置：


server {
    listen 80 default_server;
    server_name _;
    location ~ ^/.well-known/(acme-challenge|pki-validation)/ {
        add_header Content-Type text/plain;
        root /wwwroot/letsencrypt;
    }
}


以上这一步的目的是让服务器可以接受当前 IP 地址的直接访问，让 Let’s Encrypt 验证这个 IP 地址是你在控制。

注意 root 后面的内容是你自己服务器的路径，单独创建一个空文件夹即可。

再运行：


& ./acme.sh --issue --server letsencrypt -d 64.23.194.105 -w /wwwroot/letsencrypt --certificate-profile shortlived --days 8


### 证书文件在哪里？

生成的证书默认保存在 `/root/.acme.sh/64.23.194.105_ecc/` 路径下，你要使用的是：

- /root/.acme.sh/64.23.194.105\_ecc/64.23.194.105.key （私钥）
- /root/.acme.sh/64.23.194.105\_ecc/fullchain.cer （完整证书链）

比如在 Nginx 的配置文件中，就是这样写：


    ssl_certificate /root/.acme.sh/64.23.194.105_ecc/64.23.194.105.key;
    ssl_certificate_key /root/.acme.sh/64.23.194.105_ecc/fullchain.cer;


重启服务器，就好啦。

![](https://www.appinn.com/wp-content/uploads/2025/12/Screen-20251219153352@2x.avif)

## 自动续签

因为证书有效期很短，所以需要设置一个 crontab 定时：


crontab -e
0 0 * * * /root/.acme.sh/acme.sh --cron --home /root/.acme.sh > /dev/null


就好了。（续签只能解决证书更新的问题，还要记得定时重启你的 Web 服务器啊）

### 一个例子

以小众软件为例，是这样的：


51 1 */10 * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --reloadcmd "docker exec appinn-nginx-1 nginx -s reload"


因为小众软件的 Nginx 跑在 Docker 中，需要以这样的方式重启一下，这次彻底结束。

---

原文：https://www.appinn.com/letsencrypt-issue-ip-ssl-certificates/

## 一个问题

IP 地址证书到底有什么用？

## Topics

**分类目录:** [电脑技巧](https://www.appinn.com/category/pcskill/?output_format=md)

**标签:** [IP地址](https://www.appinn.com/tag/ip%e5%9c%b0%e5%9d%80/?output_format=md), [Let's Encrypt](https://www.appinn.com/tag/lets-encrypt/?output_format=md), [证书](https://www.appinn.com/tag/%e8%af%81%e4%b9%a6/?output_format=md)