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

在Alpine系统从OpenSSL1迁移至OpenSSL3时的证书版本问题

问题解决建议

原因分析

OpenSSL 3.x 对证书版本的触发逻辑做了调整:在 OpenSSL 1.x 中,即使指定的v3_req扩展段为空,只要使用-extensions v3_req参数,就会默认生成版本3(0x2)的证书;但 OpenSSL 3.x 要求v3_req段必须包含至少一个有效的v3扩展字段,才会将证书版本升级为3,否则会默认生成版本1(0x0)的证书。

解决方案

提供两种可行的修改方式:

方式一:添加有效v3扩展字段

在扩展段中加入至少一个v3证书扩展(比如基本约束),让OpenSSL 3.x识别为v3证书,修改后的命令如下:

openssl x509 -req \
    -days 365 \
    -in certs/csr.pem \
    -CA certs/cert.pem \
    -CAkey certs/key.pem \
    -set_serial 1 \
    -outform PEM \
    -out signed_cert.pem \
    -sha256 \
    -extfile <(cat <(printf "[ v3_req ]\nbasicConstraints = CA:FALSE")) \
    -extensions v3_req

方式二:强制指定证书版本

直接使用-set_version 3参数强制生成版本3的证书,命令修改如下:

openssl x509 -req \
    -days 365 \
    -in certs/csr.pem \
    -CA certs/cert.pem \
    -CAkey certs/key.pem \
    -set_serial 1 \
    -set_version 3 \
    -outform PEM \
    -out signed_cert.pem \
    -sha256 \
    -extfile <(cat <(printf "[ v3_req ]")) \
    -extensions v3_req

验证方法

执行以下命令检查证书版本:

openssl x509 -noout -text -in signed_cert.pem

确认输出中Version字段显示为Version: 3 (0x2)即可。

内容的提问来源于stack exchange,提问作者Elia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:25:04