验证: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