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

如何用Windows版OpenSSL3.2.1生成符合RFC8017且trailer为0xBC的RSASSA-PSS证书

解决OpenSSL生成RSASSA-PSS证书时Trailer字段为0x01的问题

问题背景

我们使用Windows版本的OpenSSL 3.2.1,希望生成符合RFC8017规范、满足以下条件的RSASSA-PSS证书:

  • 哈希算法:SHA-256
  • 掩码生成函数:带SHA-256的MGF1
  • 盐长度:32字节
  • Trailer字段:0xBC

但当前生成的证书中Trailer字段始终为0x01,原操作步骤如下:

  1. 生成密钥:
openssl genpkey -algorithm rsa-pss -pkeyopt rsa_keygen_bits:4096  -pkeyopt rsa_pss_keygen_md:sha256 -pkeyopt rsa_pss_keygen_mgf1_md:sha256  -pkeyopt rsa_pss_keygen_saltlen:32 -out 20240314_privateKey.pem
  1. 生成证书:
openssl req -new -nodes -x509 -days 3650 -pkeyopt rsa_keygen_bits:4096 -sigopt rsa_pss_saltlen:32 -key 20240314_privateKey.pem -out 20240314_certifcate.pem
  1. 查看证书:
openssl x509 -in 20240314_certifcate.pem -text

证书查看结果显示:

...
Mask Algorithm: mgf1 with sha256
Salt Length: 0x20
Trailer Field: 0x01 (default)
...

解决方案

问题根源是密钥生成和证书签名阶段都未明确指定Trailer字段参数,OpenSSL默认使用0x01作为Trailer字段值。需在两个步骤中分别添加对应参数:

修正后的操作步骤

  1. 重新生成包含Trailer字段配置的RSA-PSS密钥
openssl genpkey -algorithm rsa-pss -pkeyopt rsa_keygen_bits:4096 -pkeyopt rsa_pss_keygen_md:sha256 -pkeyopt rsa_pss_keygen_mgf1_md:sha256 -pkeyopt rsa_pss_keygen_saltlen:32 -pkeyopt rsa_pss_keygen_trailerfield:0xbc -out 20240314_privateKey.pem

新增-pkeyopt rsa_pss_keygen_trailerfield:0xbc参数,将密钥的默认Trailer字段设置为0xBC。

  1. 生成证书时指定Trailer字段签名参数
openssl req -new -nodes -x509 -days 3650 -key 20240314_privateKey.pem -sigopt rsa_pss_saltlen:32 -sigopt rsa_pss_trailerfield:0xbc -out 20240314_certifcate.pem
  • 移除原命令中多余的-pkeyopt rsa_keygen_bits:4096(密钥已生成,无需重复指定长度)
  • 新增-sigopt rsa_pss_trailerfield:0xbc参数,确保签名过程使用0xBC作为Trailer字段。
  1. 验证结果
    再次执行证书查看命令:
openssl x509 -in 20240314_certifcate.pem -text

此时输出的Trailer字段将显示为0xBC,符合预设要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:10:25