【问题标题】:Certificate created with Ruby SSL is not valid使用 Ruby SSL 创建的证书无效
【发布时间】:2016-02-10 01:46:11
【问题描述】:

证书使用 Ubuntu 的证书查看器打开并显示基本属性,但使用 openssl 检查失败:

openssl x509 -in client.pem -text -noout
unable to load certificate
140037204108960:error:0D0C40D8:asn1 encoding routines:c2i_ASN1_OBJECT:invalid object encoding:a_object.c:303:
140037204108960:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1     error:tasn_dec.c:772:Field=algorithm, Type=X509_ALGOR
140037204108960:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:772:Field=signature, Type=X509_CINF
140037204108960:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1    error:tasn_dec.c:772:Field=cert_info, Type=X509
140037204108960:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:

我认为脚本缺少一些必需的属性(算法、签名、cert_info?),但我不知道如何添加它们。

好的,这个问题的具体答案看起来是因为我没有在脚本中签署证书。添加后

cert.sign(ca_key, OpenSSL::Digest::SHA256.new)

我得到一个不同的错误

unable to load certificate
140072361658000:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: TRUSTED CERTIFICATE

【问题讨论】:

  • 您是如何生成证书的?您使用的是什么版本的 OpenSSL?
  • OpenSSL 1.0.2d 2015 年 7 月 9 日 - 我认为“问题”是该脚本从未签署过证书。在阅读了 ruby​​-doc 上的示例后,我现在得到以下信息:140072361658000:error:0906D06C:PEMroutines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: TRUSTED CERTIFICATE
  • 好的,最终答案是我没有在脚本中正确签名。第二条错误消息是脚本发送的响应是 unicode 并且在我剪切和粘贴时被解释错误。对不起,错误的踪迹。

标签: ruby openssl ssl-certificate pki


【解决方案1】:

如果将来有人看到这一点,问题是我没有签署证书,只是创建它。添加以下内容解决了这个问题。

cert.sign(ca_key, OpenSSL::Digest::SHA256.new)

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2020-06-26
    相关资源
    最近更新 更多