验证:OpenSSL下的SSL证书

时间:2020-01-09 10:44:04  来源:igfitidea点击:

与OpenSSL库链接的所有UNIX/Linux应用程序都可以验证由公认的证书颁发机构(CA)签名的证书。
如何在类似操作系统的UNIX下使用OpenSSL命令行工具包本身而不使用第三方网站来验证SSL证书?
您可以将verify选项传递给openssl命令来验证证书,如下所示:

$ openssl verify pem-file

$ openssl verify mycert.pem

$ openssl verify theitroad.local.pem

输出示例:

theitroad.local.pem: OK

如果一切顺利,您将看到OK消息。
如果证书已过期,它将对其进行投诉。
请注意,OpenSSL不会验证自签名证书。
您还可以按以下方式检索www.example.com证书并进行验证:

$ mkdir -p ~/.cert/www.example.com/

$ cd ~/.cert/www.example.com/

$ openssl s_client -showcerts -connect www.example.com:443

从BEGIN CERTIFICATE复制到END CERTIFICATE,然后将其另存为~..cert/www.example.com /,作为www.example.com.pem文件。
默认情况下,OpenSSL配置为使用系统信任的各种证书颁发机构,并存储在/usr/lib/ssl /目录中。
您可以使用以下命令对此进行验证:

$ openssl version -d

输出示例:

OPENSSLDIR: "/usr/lib/ssl"

另一个选择是从CA存储库中获取证书:

$ wget https://certs.godaddy.com/repository/gd_bundle.crt -O ~/.cert/www.example.com/gd.pem

最后,使用c_rehash创建指向由哈希值命名的文件的符号链接,执行:

$ c_rehash ~/.cert/www.example.com/

要确认您拥有正确且有效的证书,请执行:

$ openssl s_client -CApath ~/.cert/mail.example.com/ -connect www.example.com:443