关于在Web服务器上安装SSL证书的文章很多,对于系统管理员来说,通常这个问题并不难。 但是,在安装之前,最好进行几项检查,以免您讨厌浏览器中的“该站点的安全证书不受信任!”。 (该网站的安全证书不受信任!)。 当您不是从注册服务商那里收到证书时,而是从客户那里收到证书时,尤其如此,客户可以例如混合使用私钥或以其文本编辑器的格式发送证书,并添加格式垃圾。
因此,为了使所有内容都能正常工作,建议在安装SSL证书之前进行一些检查。
所以,让我们开始吧...
1.检查证书的完整性:
openssl x509 -noout -modulus -in certificate.crt
如果我们在输出中获得其模块,则证书的完整性不会受到破坏。 否则,将出现错误:“无法加载证书”。
2.同样,我们检查私钥的完整性:
openssl rsa -noout -modulus -in privatekey.key
3.我们查看证书的有效期:
openssl x509 -noout -text -in certificate.crt | grep -e "Not Before" -e "Not After"
4.
检查证书是否吊销 。
5.检查证书和私钥的符合性:
openssl x509 -noout -modulus -in certificate.crt | openssl md5 openssl rsa -noout -modulus -in privatekey.key | openssl md5
如果结果相同,则证书和私钥相互匹配。
自动化技术
如果您每年需要安装几个SSL证书,那么上面的命令就足够了。 但是,当您必须定期使用证书时,最好使用现成的脚本。 举个例子,我敢于提出
自己在bash下
的发展建议。 这些脚本将执行所有这些操作,而不会造成不必要的手势(已在Ubuntu中进行了测试,但很可能将在其他Linux发行版中运行)。
wget https://raw.githubusercontent.com/o-pod/security/master/ssl-check-matching.sh chmod a+x ssl-check-matching.sh wget https://raw.githubusercontent.com/o-pod/security/master/ssl-check-revoc.sh chmod a+x ssl-check-revoc.sh
检查证书和私钥的完整性和相互遵从性:
./ssl-check-matching.sh certificate.crt privatekey.key -v
检查证书的有效期及其在吊销列表中的缺失:
./ssl-check-revoc.sh -f certificate.crt -v
上述测试涵盖了我在实践中遇到的SSL证书安装问题。 但是,如果您认为值得检查其他任何参数,请在评论中分享,我将不胜感激。