【问题标题】:OpenSSL verify certificate from own CAOpenSSL 验证来自自己 CA 的证书
【发布时间】:2010-10-16 14:38:56
【问题描述】:

大家好,感谢您抽出宝贵时间阅读本文。

我需要验证我自己的 CA 颁发的证书,我有一个 证书。我怎样才能做到相当于openssl的

openssl 验证-CAfile

在 Ruby 代码中? OpenSSL 的 RDoc 在这方面不是很有帮助。 我试过了:

需要'openssl' ca = OpenSSL::X509::Certificate.new(File.read('ca-cert.pem')) lic = OpenSSL::X509::Certificate.new(File.read('cert.pem')) 把 lic.verify( ca )

但我明白了:

test.rb:7:in `verify': 错误的参数(OpenSSL::X509::Certificate)! (预期的 OpenSSL::PKey::PKey 类型)(TypeError) 来自 test.rb:7

我什至无法在 OpenSSL Rdoc 中找到“验证” http://www.ruby-doc.org/stdlib/libdoc/openssl/rdoc/index.html.

感谢任何帮助。再次感谢!

【问题讨论】:

    标签: ruby openssl x509certificate2


    【解决方案1】:

    你需要验证

    lic.verify(ca.public_key)
    

    在此之前,您可以验证证书颁发者

    lic.issuer.to_s == ca.subject.to_s
    

    我使用了一个Japanese help page 来获取可用方法的列表:)

    【讨论】:

      【解决方案2】:

      lic.verify() 仅从签署 lic 的证书中验证密钥。商业根 CA 不直接签署最终用户证书。通常涉及一到两个中间签名证书。

      所以如果CA -> signer -> user cert 那么

      lic.verify( signer.public_key)signer.verify( CA.public_key) 将返回 true,但 lic.verify( CA.public_key ) 将返回 false。

      【讨论】:

        猜你喜欢
        • 2016-11-24
        • 2016-01-22
        • 2013-03-25
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 2012-07-20
        • 2021-01-09
        • 1970-01-01
        相关资源
        最近更新 更多