如何使用 openssl 创建 X509 密钥包?
How do I create an X509 Key Bundle using openssl?
什么是问题:
我不确定我 create/validation 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
我是如何验证的?
我不知道确切地验证。请在这方面提供帮助。
尝试过哪些其他解决方案?
论坛专家如何提供帮助?
我坚信自己在没有任何结论的情况下绕着解决方案转,感觉自己很愚蠢。在创建密钥 Bundle/Validate 的视图中,我真的需要专家建议使用任何 public muauth 服务器或任何其他方法关闭它。
ca链证书
您使用的 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
什么是问题:
我不确定我 create/validation 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
我是如何验证的?
我不知道确切地验证。请在这方面提供帮助。
尝试过哪些其他解决方案?
论坛专家如何提供帮助?
我坚信自己在没有任何结论的情况下绕着解决方案转,感觉自己很愚蠢。在创建密钥 Bundle/Validate 的视图中,我真的需要专家建议使用任何 public muauth 服务器或任何其他方法关闭它。
ca链证书
您使用的 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