【问题标题】:Bad OpenSSL certificate错误的 OpenSSL 证书
【发布时间】:2010-11-27 00:36:13
【问题描述】:

我正在尝试制作一个假 CA 并用它签署一个证书以与 stunnel 一起使用(这似乎只是在调用 OpenSSL 例程,因此您可能不需要知道该程序来提供帮助:)。但是,stunnel 一直拒绝我的证书,说它没有使用正确的密钥签名!

这就是我使用 OpenSSL 生成密钥和证书的方式:

openssl genrsa -out ca_key.pem 1024

openssl req -config ./root2.cfg -new -sha1 -x509 -key ca_key.pem -out ca_cert.pem -subj "/CN=blah.blah.com/OU=Dev blah CA/C=CA/ST=blah/L=blah/O=Blah Software"

openssl genrsa -out MPS_key.pem 1024

openssl req -config ./MPS2.cfg -new -sha1 -key MPS_key.pem -out MPS_cert_req.pem -subj "/CN=blah.blah.com/OU=blah Certificate/C=CA/ST=blah/L=blah/O=Blah Software"

openssl x509 -req -in MPS_cert_req.pem -signkey ca_key.pem -out MPS_cert.pem -extensions MPS_ext

然后我的 stunnel.conf 有这些条目:

CAfile = ca_cert.pem
key = MPS_key.pem
cert = MPS_cert.pem

当我尝试启动 stunnel 时,出现通用 OpenSSL“密钥与证书不匹配”错误:

2009.09.09 16:36:04 LOG3[492:172]: SSL_CTX_use_RSAPrivateKey_file: B080074: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

我在生成文件时做错了吗?

【问题讨论】:

    标签: openssl ssl-certificate x509certificate stunnel


    【解决方案1】:

    我会总结一下你的设置:

    1. 您有一个“CA”证书,它是自签名的。
    2. 您拥有 MPS_cert,它是自签名的。
    3. 您使用 CA 密钥签署了 MPS_cert。

    如果您阅读 OpenSSL 的 x509 命令 (http://openssl.org/docs/apps/x509.html) 的参考资料,您会看到 -signkey 参数指示 OpenSSL 使用给定的私钥对提供的证书进行自签名。这不是你想要的。

    您要做的是创建一个自签名 CA,然后使用它来签署您的 CSR 并生成有效证书。

    openssl verify ca_cert.pem
    ca_cert.pem: /CN=blah.blah.com/OU=Dev blah CA/C=CA/ST=blah/L=blah/O=Blah Software
    error 18 at 0 depth lookup:self signed certificate
    OK
    
    openssl verify MPS_cert.pem
    MPS_cert.pem: /CN=blah.blah.com/OU=blah Certificate/C=CA/ST=blah/L=blah/O=Blah Software
    error 18 at 0 depth lookup:self signed certificate
    OK
    

    相关选项有-CA、-CAkey和-set_serial

    openssl x509 -CA ca_cert.pem -CAkey ca_key.pem -set_serial 1 -req -in MPS_cert_req.pem -out MPS_cert2.pem -days 365
    

    这应该会生成一个由您的 CA 签名的证书,该证书本身是自签名的。

    【讨论】:

      猜你喜欢
      • 2012-09-20
      • 1970-01-01
      • 2012-08-24
      • 2014-08-28
      • 2015-10-19
      • 1970-01-01
      • 2020-07-04
      • 2011-01-16
      • 2021-11-28
      相关资源
      最近更新 更多