使用OpenSSL验证证书

时间:2015-04-14 20:30:55

标签: ssl openssl

我创建了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。

1 个答案:

答案 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)验证它们。