6

我想为我的时间戳服务创建一个 tsa 证书。

首先我创建一个根证书

openssl genrsa -out tsaroot.key 4096 -config openssl.cnf
openssl req -new -x509 -days 1826 -key tsaroot.key -out tsaroot.crt -config openssl.cnf

然后我创建 tsa 证书

openssl genrsa -des3 -out tsa.key 4096 -config openssl.cnf
openssl req -new -key tsa.key -out tsa.csr -config openssl.cnf
openssl x509 -req -days 730 -in tsa.csr -CA tsaroot.crt -CAkey tsaroot.key -set_serial 01 -out tsa.crt
openssl pkcs12 -export -out tsa.p12 -inkey tsa.key -in tsa.crt -chain -CAfile tsaroot.crt

在我的 openssl.cnf 文件中,我添加了以下行:

extendedKeyUsage = critical,timeStamping

然而,创建的证书似乎不包括extendeKeyUsage(当我尝试用充气城堡阅读它时,我得到一个“证书必须有一个ExtendedKeyUsage扩展。”例外

如何生成有效的 tsa 证书(包括正确的 extendedKeyUsage 值)?

谢谢

4

2 回答 2

3

以下工作:

创建一个文件 extKey.cnf,里面有extendedKeyUsage

extendedKeyUsage = critical,timeStamping

创建请求时添加它:

openssl x509 -req -days 730 -in tsa.csr -CA tsaroot.crt -CAkey tsaroot.key -set_serial 01 -out tsa.crt -extfile extKey.cnf
于 2012-12-13T19:17:33.280 回答
3

尝试以下方法:

  1. 在文件中添加一个命名部分openssl.cnf

    [v3_tsa]
    extendedKeyUsage = critical,timeStamping
    
  2. 从 生成 TSA 证书时tsr,添加开关-extensions

    openssl x509 -req ... -extensions v3_tsa
    
于 2012-11-12T08:20:16.313 回答