【问题标题】:How do I create an X509 Key Bundle using openssl?如何使用 openssl 创建 X509 密钥包?
【发布时间】:2018-04-03 13:49:28
【问题描述】:

什么是问题:

我不确定创建/验证 X509 密钥包的方式。

我做了什么?

我正在尝试使用 OpenSSL 创建一个 X509 相互身份验证密钥包,能够生成证书和密钥包。以下脚本用于创建捆绑包。

mkdir certificate
cd certificate
mkdir certs csr newcerts
touch index.txt
echo "1000" > serial

::Root Certicicate
openssl genrsa -out certs/ca.key.pem 2048
openssl req -config openssl.cnf -key certs/ca.key.pem -new -x509 -days 3650 -sha256 -extensions v3_ca -out certs/ca.crt.pem
openssl x509 -noout -text -in certs/ca.crt.pem
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

::Certificate 1
openssl genrsa -out certs/intermediate1.key.pem 2048
openssl genpkey -algorithm RSA -out certs/intermediate1.key.pem 2048
openssl req -config openssl.cnf -key certs/intermediate1.key.pem -new -sha256 -out csr/intermediate1.csr.pem -subj "/C=CN/ST=STATE/O=ORG/CN=intermediate1"
openssl ca -config openssl.cnf -batch -extensions usr_cert -days 3750 -notext -md sha256 -in csr/intermediate1.csr.pem -out certs/intermediate1.crt.pem

::Certificate 2
openssl genrsa -out certs/intermediate2.key.pem 2048
openssl genpkey -algorithm RSA -out certs/intermediate2.key.pem 2048
openssl req -config openssl.cnf -key certs/intermediate2.key.pem -new -sha256 -out csr/intermediate2.csr.pem -subj "/C=CN/ST=STATE/O=ORG/CN=intermediate2"
openssl ca -config openssl.cnf -batch -extensions usr_cert -days 3750 -notext -md sha256 -in csr/intermediate2.csr.pem -out certs/intermediate2.crt.pem

::Chain the certificate
cat certs/intermediate1.crt.pem certs/ca.crt.pem > certs/ca-chain.cert.pem
cat certs/intermediate2.crt.pem certs/ca.crt.pem > certs/ca-chain.cert.pem

我是如何验证的?

我不知道确切的验证。请在这方面提供帮助。

尝试了哪些其他解决方案?

KeyStore Explorer

Stackoverflow answers

论坛专家如何提供帮助?

我坚信我在没有任何结论的情况下围绕解决方案进行循环,并且感觉自己很愚蠢。在使用任何公共 muauth 服务器或任何其他方法创建密钥捆绑/验证的视图中,我真的需要专家建议来关闭它。

ca-chain 证书

【问题讨论】:

    标签: openssl x509


    【解决方案1】:

    您错误地使用了cat。这样,第二个中间证书将覆盖第一个,而不是附加到它上面。此外,您的根证书不属于链中,因为这就是您要验证的内容。你应该这样做:

    cat certs/intermediate1.crt.pem certs/intermediate2.crt.pem > certs/ca-chain.cert.pem
    

    然后根据 CA 证书验证这一点,或者简单地说:

    cat certs/intermediate1.crt.pem certs/intermediate2.crt.pem | openssl verify -CAfile certs/ca.crt.pem
    

    【讨论】:

    • 谢谢。我相应地修改了代码。仍然没有运气。我无法从 ca-chain 证书中看到信任链
    • OK,验证只需执行我给你的 openssl 命令。要解决“找不到证书的颁发者”问题,您必须将根证书添加到您的证书存储中。
    • 谢谢。让我检查一下
    • 我认为这个故事的关键是,如果你想提供证书链,看看它是否可以自我验证,你需要对照你创建的同一个包检查它们。所以这样做:cat certs/ca.crt.pem certs/intermediate1.crt.pem certs/intermediate2.crt.pem > certs/ca-chain.cert.pem 然后cat certs/ca-chain.cert.pem | openssl verify -CAfile certs/ca-chain.cert.pem
    猜你喜欢
    • 2022-12-04
    • 1970-01-01
    • 2020-08-12
    • 2013-03-04
    • 2016-10-28
    • 2013-06-14
    • 2017-11-12
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多