前言
SSL 价格并不便宜, 本节介绍如何使用 acme.sh 生成免费的 SSL 证书
证书生成原理
CA && Let’s Encrypt
证书颁发机构(CA,Certificate Authority)是一个负责颁发数字证书的实体。数字证书用于在互联网上验证实体的身份,确保通信的安全和可信性。
Let’s Encrypt 是一个免费、自动化和开放的证书颁发机构 ,由互联网安全研究组(ISRG)运营。它的目标是通过提供免费的 SSL/TLS 证书,让 HTTPS 加密在互联网上变得更加普及和易于部署。以下是一些关于 Let’s Encrypt 的关键点:
- 免费:Let’s Encrypt 提供免费的 SSL/TLS 证书,不需要支付传统证书的费用。
- 自动化:通过 ACME 协议(Automatic Certificate Management Environment),可以自动申请、验证、安装和更新证书。
- 安全:帮助网站实现 HTTPS,加密用户与网站之间的通信,提高安全性。
- 开放:任何人都可以使用 Let’s Encrypt 的服务,无需特殊权限或繁琐的申请流程。
- 社区支持:由许多大公司和组织支持,如 Mozilla、思科、Akamai 和 EFF(电子前沿基金会)。
ACME 协议
ACME(Automatic Certificate Management Environment)协议是一种自动化方式,用于与证书颁发机构(CA,如 Let’s Encrypt)进行交互,自动颁发、续订和管理证书。ACME 协议通过域名验证来证明你对域名的控制权。
域名验证
为了颁发证书,CA 需要验证你对请求证书的域名的控制权。ACME 支持多种验证方法,常见的有 HTTP-01、DNS-01 和 TLS-ALPN-01。
- HTTP-01: CA 会请求一个特定的 URL(例如 http://yourdomain.com/.well-known/acme-challenge/unique-token),你需要在服务器上提供一个包含特定内容的文件来响应这个请求。
- DNS-01: CA 会验证特定的 DNS TXT 记录(例如 _acme-challenge.yourdomain.com),你需要在 DNS 服务器上添加这一记录来进行验证。
证书签发
通过验证后,CA 会生成并签发 SSL 证书,并将证书发送回给请求者。这个证书包含了域名的公钥信息,CA 对其进行签名,确保其真实性。
为 idea.chenxiaoyao.cn 添加证书
下面用真实项目解释流程, 项目基本信息如下:
idea.chenxiaoyao.cn # 项目域名, docker 部署, 3000 端口
assets.chenxiaoyao.cn # cdn 域名, 用于主项目地资源存储
服务器为 aws 免费使用版(一年), 操作系统为 Ubuntu
域名在腾讯云上申请并使用, OSS 服务使用了阿里云
服务器 acme.sh 安装
登录云服务器控制台, 可以通过控制台网页或者本地命令行登录
我这里使用了是本地命令行
ssh -i "xxxx.pem" ubuntu@xxxx.us-west-1.compute.amazonaws.com
安装 acme.sh, github 地址: https://github.com/acmesh-official/acme.sh
curl https://get.acme.sh | sh -s email=my@example.com
安装完成根目录会出现.acme.sh 文件夹,里面有一个文件,用于配置证书

获取密钥
腾讯云获取密钥: https://console.cloud.tencent.com/cam/capi, 点击新建, 复制到安全的地方
登录云服务器控制台


1691

被折叠的 条评论
为什么被折叠?



