获取 HTTPS 协议所需的 SSL 证书

2024-12-04 19:56:00
丁国栋
原创 156
摘要:本文整理了关于 HTTPS 网站或服务所需的SSL证书和配置相关的知识。

目前网站或者 Web 服务通过 HTTPS 协议访问早已是主流标准,因为 HTTP 协议不加密传输会导致数据在传输过程中被窃取,从而缺乏安全性。


要想获取 HTTPS 所需的 SSL 证书有很多种方法:

方法
优点 缺点 备注
1. 通过openssl,Microsoft AD CS等工具或系统自签发证书 操作简单,又能任意签发自己想要的证书,有效期长 为了让客户端信任证书需要额外的配置客户端,不适合于互联网范围内使用
2. 通过其他工具签发,例如 certbot,acme.sh等 可以被大部分客户端所信任,能自动续订证书 有效期一般较短,比如三个月(90天) 客户端需要保持自身证书系统的更新,用于云服务时需要自己对接API
3. 购买付费证书 证书有效期时间长,能自动续订,支持与云服务商的服务集成使用 费用较高 部分服务商也支持购买免费版,但有一些限制,比如数量限制或者域名限制等。

一般来说经济实力雄厚的可以使用第三种,个人或者小微企业建议使用第二种。


通过 certbot 获取证书可参考 https://certbot.eff.org/instructions?ws=apache&os=pip&tab=wildcard

通过 acme.sh 获取证书可参考 https://github.com/acmesh-official/acme.sh


以下是使用 acme.sh 申请各种 DNS 服务商的 SSL 证书的快速命令。

详细可以参考 《acme.sh 快速指南


物料准备:

  1. 任意合法的域名
  2. 域名已经配置DNS 解析,例如DNS服务器在腾讯云、阿里云、AWS、CloudFlare等
  3. 虚拟机、主机或云主机或云服务至少其中一种
  4. 拥有一套可以操作 DNS 解析的API Key 和 Secret

安装


curl https://get.acme.sh | sh -s email=ssl@thedf.cc
或者先通过 Git 命令将 GitHub 的代码库克隆到本地 git clone https://github.com/acmesh-official/acme.sh.git,然后执行 bash acme.sh/acme.sh -s email=ssl@thedf.cc

所需的环境变量

云服务商/DNS服务商
--dns 参数 环境变量 说明 备注
亚马逊 AWS
dns_aws

export  AWS_ACCESS_KEY_ID=

export  AWS_SECRET_ACCESS_KEY=

export  AWS_DNS_SLOWRATE=1

暂无 暂无
阿里云
dns_ali

export Ali_Key=

export Ali_Secret=

暂无
暂无
腾讯云
dns_tencent

export Tencent_SecretId=

export Tencent_SecretKey=

暂无
暂无
CloudFlare
dns_cf

export CF_Key=

export CF_Email=

暂无
暂无
生成通配符证书,以腾讯云为例

export Tencent_SecretId=
export Tencent_SecretKey=
/root/.acme.sh/acme.sh --issue -d 'thedf.cc' -d '*.thedf.cc' --dns dns_tencent # 注意 -d 参数的前后顺序,没有 * 号的在前,有星号的在后

续订证书:acme.sh --renew -d thedf.cc --force

提示:

  1. 在申请证书时,一定要把普通域名放在前面,带通配符(*号)的域名放在后面,这样证书的名字和文件名称都不会包含特殊字符。可以通过 acme.sh list | grep thedf.cc 命令查询签发的证书。
  2. 为了后续能知道这个域名是通过什么方式签发的证书,建议利用好域名管理控制台的域名记录备注功能记录好(目前已知腾讯云、CF都支持),或者通过其他的方式记录好,比如监控软件、资产管理工具等。


--

评论列表
匿名 2024-12-27 11:50:19 Email: ****@**** IP: 223.*.*.226 (山东/青岛) 回复
写给别人看的文章容易遇到“知识诅咒”你以为很简单的东西在别人看来可能很复杂,从文章的受众考虑的话是可以写得专业一点,但用户中也有一些外行人,可以给出一些适合外行人看的链接或引导,就和给一些高级用户扩展阅读和深入阅读一样。
1/1
发表评论
博客分类