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 你的邮箱 ...
相关推荐
Bert.Cai2 小时前
Linux more命令详解
linux·运维
minji...2 小时前
Linux 多线程(四)线程等待,线程分离,线程管理,C++多线程,pthread库
linux·运维·开发语言·网络·c++·算法
麦德泽特2 小时前
基于 Go 语言的 Modbus 项目实战:构建高性能、可扩展的工业通信服务器
服务器·开发语言·golang·modbus·rtu
倔强的胖蚂蚁2 小时前
云原生服务器存储规划与磁盘选型实施
运维·服务器·云原生
ZGUIZ2 小时前
Ubuntu 25.10 无法外接显示器解决方案
linux·运维·ubuntu
一条闲鱼_mytube2 小时前
TCP流量控制与拥塞控制
服务器·网络·tcp/ip
yang)2 小时前
JESD 204b
运维·服务器·网络
QJtDK1R5a2 小时前
V4L2 vs GStreamer vs FFmpeg:Linux多媒体处理的三个层级
linux·运维·ffmpeg
倔强的石头1062 小时前
【Linux指南】基础IO系列(四):文件描述符 fd——Linux 文件操作的 “万能钥匙”
linux·运维·服务器