证书请求签名错误 "期望受信任的请求"

7

我尝试使用openssl用自己的CA签署证书请求,有两个选项。

  1. openssl x509.

    openssl X509 -req -CA ca.crt -CAkey ca.pem -in bob.csr -out bob.crt -CAcreateserial`
    

有些文章说x509用于生成自签名证书。

但是使用openssl X509时出现错误:

unable to load certificate
6612:error:0906D06C:PEM routines:PEM_read_bio:no start       
line:.\crypto\pem\pem_lib.c:701:Expecting: TRUSTED CERTIFICATE
  1. openssl ca:

    openssl ca -in bob.csr -out bob.crt -keyfile ca.key
    

在进行操作之前,需要预先配置openssl.config。例如,创建目录./demoCA

请告知正确的方法。如果使用openssl x509是正确的,那么如何解决expecting trusted certificate错误?非常感谢!


1
如果 -CA 文件 ca.crt 包含 CA 证书,则您的第一个命令应该可以工作(对我而言确实如此);如果 -CA 文件不是证书,我会得到与您相同的错误(如果它是证书但是错误的证书,则会出现 0B080074 ... key values mismatch)。请检查该文件。openssl ca 是一个有效的替代方法,它需要在配置文件中设置几个参数,尽管该文件可以使用任何您选择的名称(使用 -config),并且它不必使用特定的子目录甚至不使用任何子目录,这只是一种约定。 - dave_thompson_085
SSL_CTX_use_certificate 之后,我收到了相同的消息,我通过将两个文件合并为一个来解决它:一个带有 -----BEGIN RSA PRIVATE KEY----- 的文件和一个带有 -----BEGIN CERTIFICATE----- 的文件。 - quant2016
1个回答

5
请告诉我哪个方法是正确的。如果使用openssl x509命令是正确的,那么如何解决expecting trusted certificate错误?非常感谢!
您可以使用openssl x509命令来处理证书。但由于您没有证书,因此不应使用openssl x509命令。
您可以使用openssl req命令来创建签名请求。如果您只使用openssl req命令,则会创建一个签名请求。
如果您使用openssl req -x509命令,则会创建自签名证书。它跳过了签名请求并直接进入证书。
如果您需要成为自己的CA的帮助,请参见如何使用您的认证机构签署证书签名请求? 如果您需要有关签名请求和格式良好的证书的帮助,请参见如何使用openssl创建自签名证书?

req -x509 只能创建自签名证书,这显然不是 OP 想要的。x509 有几个功能,其中 x509 -req -CA [-CAkey] 就像 OP 正确展示的那样可以创建由 CA 签名的证书。 - dave_thompson_085

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接