acme.sh生成https证书

前言

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://github.com/chenxiaoyao6228/cloudimg/2024/acme-install.png

获取密钥

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

登录云服务器控制台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值