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

使用OpenSSL 3搭建TSA时遇签名证书用途无效错误,求解决

问题描述

我尝试用OpenSSL 3搭建时间戳服务器(TSA):先在ca目录建了私有CA,又在tsa目录生成了TSA的密钥和证书,也配置了tsa/openssl.cnf。生成时间戳查询请求(request.tsq)一切正常,但执行生成时间戳响应的命令时,弹出错误:

openssl tsa: invalid signer certificate purpose
803BDC56027F0000:error:17800075:time stamp routines:TS_RESP_CTX_set_signer_cert:invalid signer certificate purpose:../crypto/ts/ts_rsp_sign.c:163:

请问我漏了什么配置?

解决办法

这个错误的根源是你的TSA签名证书没有配置timeStamping扩展用途(Extended Key Usage)。OpenSSL 3对TSA证书的用途校验很严格,必须明确指定该证书用于时间戳签名,不然会拒绝使用它生成响应。

按下面的步骤修复:

  • 给TSA证书添加时间戳扩展
    在生成TSA证书请求(CSR)的配置,或者你的私有CA的openssl.cnf里,加入以下扩展段:
    [tsa_ext]
    extendedKeyUsage = critical,timeStamping
    
    • 如果是在TSA的CSR配置里,生成CSR时要指定使用这个扩展段(比如用-extensions tsa_ext参数);
    • 如果是在CA的配置里,要确保签发TSA证书时自动应用这个扩展。
  • 重新签发TSA证书
    如果之前的TSA证书没带这个扩展,需要重新生成CSR(或者直接用CA重新签发,确保扩展被加上),得到新的TSA证书。
  • 确认证书扩展正确
    用这条命令检查证书是否包含了正确的扩展:
    openssl x509 -in tsa_cert.pem -text -noout | grep -A 2 "Extended Key Usage"
    
    正常输出应该能看到:

    Extended Key Usage:
    Time Stamping

  • 更新TSA配置
    确保tsa/openssl.cnf里指定的签名证书是新生成的、带有正确扩展的证书,路径别写错。

做完这些再重新运行生成时间戳响应的命令,问题应该就能解决了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:39:51