ECDSA 证书,即 ECC 证书,具有很多优势,例如效率更高,满足同等安全性的情况下密钥更短,下面详细列出了一部分优势:

  • ECC 密钥更短,意味着 ECC 将占用更少的资源却有更高的性能;
  • ECC 更易扩展,随着 RSA 密钥更长只会让 SSL/TLS 面临更多的麻烦;
  • ECC 并不太容易受到量子计算机的安全威胁;
  • 256 位 ECC 安全性等同于 3072 位 RSA

本文将详细介绍如何从 Let’s Encrypt 获取一张 ECC 证书

前提条件

一台服务器,Linux 和 Windows 均可,更建议 Linux,作者使用 TencentOS 3.1 演示

安装 acme.sh

1
curl https://get.acme.sh | sh -s email=邮箱

安装完成后需要重启终端,如果懒得重启,里面再开个新的 bash

1
bash

设置 CA

1
acme.sh --issue -d example.com --dns dns_cf --server letsencrypt

设置为 Let’s Encrypt

注册账户

1
acme.sh --update-account

会输出一个类似 https://acme-v02.api.letsencrypt.org/acme/acct/12345678 的链接,这个链接就是你的账户 ID

获得 E1 许可

Let’s Encrypt 目前有八个中间证书颁发机构,分别是:

  • 已弃用:X1、X2、X3、X4
  • 活跃:R3
  • 活跃(受限制):E1
  • 灾难备份:R4、E2

其中已弃用的四个中间证书颁发机构的根证书颁发机构(CA)是:

  • ISRG Root X1
  • IdenTrust

R3、R4 的根证书颁发机构(CA)是:

  • ISRG Root X1
  • IdenTrust(弃用)

而 E1、E2 有一个全新的 CA:

  • ISRG Root X2

目前,E1 不是所有人都可以申请,你必须先填写下面的申请表格,然后才能获取证书:

https://forms.gle/ftKeqkj6AJgXUDPJ8

上面的链接在中国大陆无法直接打开,建议通过合法使用代理等方式打开。

Let’s Encrypt 的工作人员每周四集中进行审批,因此你可能需要等待一段时间

获取证书

如果你拥有了 E1 许可,就可以创建 ECDSA 证书了

如果你想使用 DNS 验证,需要先配置 DNS API
如果你的 DNS 不支持 API,或者使用文件验证,请跳过这一步
这里使用 DNSPod 演示

1
2
export DP_Id="114514"
export DP_Key="0123456789ABCDEF"

然后申请证书

1
acme.sh --issue --dns dns_dp -d mbrjun.cn  -d "*.mbrjun.cn" --keylength ec-384

参数解释:

  • -d 后面的是你的域名,支持多个域名,支持通配符,如果是中文/emoji域名请你编码,如果是通配符请打上双引号
  • –keylength 后面是密钥强度,可以是 ec-256 或者 ec-384

然后应该就能成功申请了,证书和私钥保存在 .acme.sh目录下

关于本站

本站玩过了很多证书,最后觉得还是 Let’s Encrypt E1 好看x

其实 ZeroSSL 也很好玩

本站玩过的部分证书:

  • TrustAsia RSA CA
  • Digicert RSA2048
  • TrustAsia ECC CA
  • Let’s Encrypt R3
  • Let’s Encrypt E1
  • ZeroSSL