1. 安装 acme
使用 acme 命令行工具来申请安装证书
2. 安装 socat
socat 是一款 Linux 下的工具软件,可以在两个不同的数据流之间建立连接,实现数据传输、转换和处理等功能
acme 依赖 socat, 所以安装:
3. 添加软连接
添加到 bin 下面, 可以直接使用 acme.sh 脚本而不需要加上路径
4. 注册账号
默认使用 ZeroSSL, 注册成功会提示
5. 开放 80 端口
因为申请证书时候需要验证(使用 standalone 方式), 证书颁发机构会通过申请证书的域名来访问一个字符串, 用来测试你是否是域名的主人. 所以需要 80 端口.
6. 申请证书
申请过程中可以用浏览器打开域名看到有一传随机字符串, 申请结束后再访问域名就没有了, 这就是使用 acme 创建了一个服务器, 证书颁发机构用来验证的过程.
7. 切换 CA
有时候排队很慢, 需要切换一下 CA
然后再重新执行第 6 步.
申请完证书后会有几个文件:
- cert 文件: 是申请的 SSL 证书,包含了网站的公钥信息以及证书持有者的身份信息, 一般用来安装到 Web 服务器, 用于加密传输数据.
- cert.key 文件: 是证书的私钥文件, 用来和公钥一起对通信数据进行加密或解密等操作, 一般保密并妥善保存.
- Intermediate CA cert: 中间证书, 用于构建证书链, 保证证书的可信度.
- chain certs 文件(fullchain.cer): 由于 ACME 证书申请是需要经过中间 CA 的签发, 生成的证书文件中还包含了中间 CA 和根 CA 的证书信息, 这些证书也放在了该文件中. Web 服务器需要将该文件与证书配合使用, 以便构建完整的证书链条, 确保客户端能够正确识别证书的有效性.
8. 安装到 nginx
除此之外, 证书默认 90 天有效, 90 天后会过期, 如果使用 acme.sh 会自动帮我们每天 renew, 不需要自己写 corntab: