前言
记录一次使用acme.sh免费开启https的过程,前半部分列举一些用到的概念,后半部分记录具体操作步骤。文章已调整好线性阅读顺序,按顺序阅读即可。流程中涉及的概念会尽量进行讲解,以减少阅读此篇文章时,额外检索产生的时间消耗。
概念
acme.sh
acme.sh是github上的一个开源项目,实现了acme协议, 可以从letsencrypt生成免费的证书。
官方文档(官方文档的使用说明很详细,推荐阅读):
英文:https://github.com/acmesh-official/acme.sh
中文:https://github.com/acmesh-official/acme.sh/wiki/说明
acme.sh 有以下特点(摘自官方文档):
- 一个完全使用用Shell(Unix shell)语言编写的ACME协议的客户端
- 支持ACME v1和ACME v2协议
- 支持ACME v2通配符证书
- 简单,强大且非常易于使用。 您只需3分钟即可学习
- 和bash,dash, sh兼容
-
Let's Encrypt
免费证书客户端最简单的shell脚本 - 完全用Shell编写,不依赖python或官方的
Let's Encrypt
客户端 - 只需一个脚本即可发布,续期和自动安装证书
- 不需要root/sudoer权限
- 对Docker友好的
- 支持IPv6
- 对证书续期和错误等有cron job通知
Let’s Encrypt
Let's Encrypt
是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。
— 摘自 维基百科
网站开启https的时候需要证书,证书由CA机构(数字证书认证机构)签发,大部分传统CA机构签发证书需要收费,这不利于https协议的推广。Let's Encrypt
也是一个CA机构,但它是免费签发数字证书的,通过它,我们可以免费开启https
ACME(自动证书管理环境)
ACME协议最初是由 Internet Security Research Group 为其公共 CA(公共证书颁发机构)——Let’s Encrypt 开发的。ACME 协议通过在给定 Web 服务器上安装证书管理代理来运行。组织或域在一开始就经过验证,代理协助域控制验证,一旦完成,代理可以请求,续订和撤销证书。
详情:ACME 协议:它是什么以及如何工作——asiaregister.com
ACME协议具体的工作流程这里就不细说了,感兴趣的朋友可以去详情即原出处查看。
全站https,通配符证书
通配符证书是一个可以被多个子域使用的公钥证书,主域名签发的通配符证书可以在所有子域名中使用。在此之前,配置子域名也是需要每个子域名单独的申请证书的。2018年3月14日,Let’s Encrypt
对外宣布ACME v2已正式支持通配符证书,这意外味着用户可以在 Let’s Encrypt
上免费申请支持通配符的SSL证书。
具体操作
官方文档(官方文档的使用说明很详细,推荐阅读):
英文:https://github.com/acmesh-official/acme.sh
中文:https://github.com/acmesh-official/acme.sh/wiki/说明
本文使用的操作系统(Linux各版本操作步骤基本一致):CentOS 7.3
1. 安装acme.sh
输入
curl https://get.acme.sh | sh
或
wget -O - https://get.acme.sh | sh
curl 命令
curl 命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载