You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Nginx服务器生成ECC CSR并申请带CanSignHttpExchanges扩展的TLS证书?

为Nginx生成带CanSignHttpExchanges扩展的ECC CSR(用于Signed HTTP Exchanges)

步骤1:生成ECC私钥

使用OpenSSL生成符合规范的椭圆曲线(推荐prime256v1,主流CA均支持)私钥:

openssl ecparam -genkey -name prime256v1 -out your-domain-ecc.key

注意:私钥文件需妥善保管,避免泄露。

步骤2:创建CSR扩展配置文件

新建csr-extensions.conf文件,填入以下内容并替换括号内的实际信息:

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[req_distinguished_name]
C = CN                  # 国家代码(如CN代表中国)
ST = Beijing            # 省份/州
L = Beijing             # 城市
O = Your Org Name       # 组织名称
OU = Your Dept Name     # 部门名称
CN = example.com        # 与证书申请一致的域名

[v3_req]
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
1.3.6.1.4.1.11129.2.1.22 = ASN1:BOOLEAN:TRUE  # CanSignHttpExchanges扩展的标准OID

核心是最后一行的扩展配置,确保OID和布尔值正确,这是Signed HTTP Exchanges要求的关键标识。

步骤3:生成带扩展的ECC CSR

执行命令,基于私钥和配置文件生成符合要求的CSR:

openssl req -new -key your-domain-ecc.key -out your-domain-ecc.csr -config csr-extensions.conf

步骤4:验证CSR的扩展正确性

生成后,通过以下命令检查CSR是否包含目标扩展:

openssl req -in your-domain-ecc.csr -noout -text

在输出的X509v3 extensions段落中,应能看到:

X509v3 extensions:
    ...
    1.3.6.1.4.1.11129.2.1.22:
        TRUE

后续Nginx证书配置(证书到手后)

拿到DigiCert颁发的带扩展的ECC证书后,在Nginx中配置SSL:

server {
    listen 443 ssl http2;
    server_name example.com;

    # 指定ECC证书与私钥路径
    ssl_certificate /path/to/your-domain-ecc.crt;
    ssl_certificate_key /path/to/your-domain-ecc.key;

    # 适配ECC的SSL优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;
}

内容的提问来源于stack exchange,提问作者MD. Zeaul Hoque Shuvo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:40:38