我创建了2个中间证书,名为cert1.crt,cert2.crt由公共cert0 root签名,我需要使用verify命令验证它们。
我输入:
verify -CAfile cert1.crt cert2.crt
我得到的是:
error 20 at 0 depth lookup:unable to get local issuer certificate.
当我用我从证书生成的两个.pem文件替换.crt文件时,会出现相同的错误。 我究竟做错了什么?我使用的是OpenSSL工具包,我的操作系统是Windows 8。
答案 0 :(得分:0)
我不知道如何创建一个公共的cert0 root。
您可以通过以下步骤执行此操作:
0)创建CA私钥和rootreq
$ openssl req -nodes -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.pem
1)创建CA自签名证书
$ openssl x509 -req -in rootreq.pem -sha1 -signkey rootkey.pem -out rootcert.pem
2)创建客户私钥和certreq
$ openssl req -nodes -newkey rsa:1024 -sha1 -keyout userkey.pem -out userreq.pem
3)使用客户端certreq创建客户端证书 $ openssl x509 -req -in userreq.pem -sha1 -CA rootcert.pem -CAkey rootkey.pem -CAcreateserial -out usercert.pem
4)验证证书
$ openssl verify -CAfile rootcert.pem usercert.pem
您可以使用不同的输出重复步骤2)和3)以创建一些客户端证书,并在步骤4)验证它们。