linux 下用 acme.sh 搞定 Nginx 免费 SSL 证书自动续期(下) 对于acme.sh命令安装详解

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

这条命令是 acme.sh 官方推荐的一键安装脚本。它的设计哲学是"极简",通过管道将下载和执行合二为一。

我们可以把它拆解为三个部分来详细解读:

1. curl https://get.acme.sh ------ 下载脚本

  • curl :这是一个在 Linux 终端中常用的工具,用于向服务器传输数据。在这里,它的作用是访问 https://get.acme.sh 这个网址。
  • https://get.acme.sh :这是 acme.sh 官方提供的安装脚本入口地址。当你访问它时,服务器不会返回网页,而是直接返回一段 Shell 脚本代码

2. | ------ 管道符

  • 这是 Linux 中最强大的符号之一。它的作用是把前一个命令的输出,直接变成后一个命令的输入
  • 在这里,它把 curl 下载回来的那段脚本代码,直接"喂"给了后面的 sh 命令去执行,而不需要 你先把脚本下载到本地(比如 curl -o install.sh),再手动运行。

3. sh -s email=my@example.com ------ 执行脚本并传参

  • sh:这是 Shell 解释器,用来运行脚本。
  • -s :这个参数告诉 sh,"我要运行的是从管道传过来的标准输入(stdin),而不是硬盘上的某个文件"。
  • email=my@example.com :这是传给安装脚本的参数。
    • 安装脚本接收到这个参数后,会把它作为你的账户邮箱注册到 ACME 服务商(如 Let's Encrypt 或 ZeroSSL)。
    • 这个邮箱非常重要,用于接收证书到期提醒、密钥丢失找回等紧急通知。

🚀 这条命令在后台默默做了什么?

当你回车执行这条命令后,脚本会在几秒钟内自动完成以下三件大事:

  1. 克隆代码 :它会把 acme.sh 的源码下载到你的家目录下的隐藏文件夹 ~/.acme.sh/ 中。
  2. 创建别名 :它会自动修改你的 Shell 配置文件(如 ~/.bashrc),添加一行 alias acme.sh=~/.acme.sh/acme.sh。这意味着你以后在任何目录下,直接输入 acme.sh 就能运行它,无需输入长长的路径。
  3. 安装定时任务 :它会自动向系统的 crontab 中添加一条定时任务,用于每天检查证书是否需要续期。

💡 常见问题与替代方案

Q: 如果我的服务器没有 curl 怎么办?

A: 你可以使用 wget 替代,效果是一样的:

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

Q: 这种"下载即执行"的方式安全吗?

A: 对于 acme.sh 这种开源且广泛使用的项目,通常是安全的。但如果你比较谨慎,或者处于内网环境,可以使用离线安装法

  1. 先下载源码:bash

    复制代码
    git clone https://github.com/acmesh-official/acme.sh.git
  2. 进入目录并安装:bash

    复制代码
    cd acme.sh
    ./acme.sh --install -m my@example.com

这条命令就是利用 Linux 的管道特性,实现"下载 + 安装 + 配置"一步到位,是目前最快捷的部署方式。

-m 和 email 有区别吗

acme.sh 的语境下,-memail 实际上指的是同一个东西,没有本质区别

简单来说:-m--email 的缩写

刚才使用的安装命令中,写法稍微有点特殊,现在来拆解一下这背后的逻辑:

1. 标准参数中的 -m

acme.sh 的绝大多数命令(如申请证书、续期)中,官方文档定义的标准参数是:

  • -m:这是简写。
  • --email:这是全称。

用法示例

复制代码
acme.sh --issue -m my@example.com -d example.com

在这种情况下,-m--email 完全通用。

2. 安装脚本中的 email=...

在你使用的安装命令 curl ... | sh -s email=my@example.com 中:

  • 这里的 email=my@example.com 并不是 acme.sh 程序本身的参数格式,而是安装脚本(installer) 接收参数的格式。
  • 官方安装脚本被设计为接受 key=value 的形式。当你写 email=my@example.com 时,安装脚本会识别出 email 这个键,并将其值保存下来。
  • 安装脚本在后台执行 --install 操作时,会自动把这个邮箱赋值给 -m--email 参数。

3. 总结与对比

场景 写法 含义 是否推荐
安装时 sh -s email=xxx 告诉安装脚本:"把这个邮箱记下来,安装时帮我填好"。 ✅ 推荐 (官方安装写法)
日常使用 -m xxx 告诉 acme.sh:"使用这个邮箱"。 ✅ 推荐 (简写,方便)
日常使用 --email xxx 告诉 acme.sh:"使用这个邮箱"。 ✅ 推荐 (全称,清晰)
日常使用 email=xxx 错误 。直接运行 acme.sh 命令时不支持这种赋值写法。 ❌ 错误

💡 结论

你不需要纠结,它们就是一回事

  • 安装 时,请遵循安装脚本的格式:... | sh -s email=你的邮箱
  • 以后使用 (如申请、续期)时,你可以习惯用 -m,因为它打字最少:acme.sh --issue -m 你的邮箱 ...
相关推荐
AnalogElectronic2 分钟前
linux 测试网络和端口是否连通的命令详解
linux·网络·php
Edward1111111137 分钟前
4月28日防火墙问题
linux·运维·服务器
想学后端的前端工程师1 小时前
【补充内外网突然不通的情况】
运维·服务器
面汤放盐1 小时前
何时使用以及何时不应使用微服务:没有银弹
java·运维·云计算
子琦啊1 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
跨境数据猎手2 小时前
跨境独立站系统技术拆解(附带源码)
服务器·前端·php
AOwhisky2 小时前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes
小龙在慢慢变强..3 小时前
目录结构(FHS 标准)
linux·运维·服务器
2035去旅行3 小时前
嵌入式开发,如何选择C标准库
linux·arm开发