![如何从包含三个证书的 PEM 文件中删除最后一个证书?](https://linux22.com/image/208476/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%8C%85%E5%90%AB%E4%B8%89%E4%B8%AA%E8%AF%81%E4%B9%A6%E7%9A%84%20PEM%20%E6%96%87%E4%BB%B6%E4%B8%AD%E5%88%A0%E9%99%A4%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E8%AF%81%E4%B9%A6%EF%BC%9F.png)
一些系统仍然运行在 Ubuntu 16.04 上,无法轻松升级,但今年晚些时候它们将完全被 Ubuntu 22.04 机器取代;不幸的是,要让 LetsEncrypt 在这些计算机上工作,您需要删除添加到每个fullchain.pem
实时 LetsEncrypt 证书末尾的未知受信任机构。
现在,我正在手动执行此操作,但我正在寻找一种以编程方式执行此操作的优雅方法,因为我们要更改的服务器上有相当多的证书,因此回顾一下:
有没有一种优雅的方法(使用openssl
或其他工具,而不仅仅是sed
)来删除我fullchain.pem
的证书中存在的第三个证书?
答案1
openssl
可以做你想做的事:
$ ( openssl x509; openssl x509 ) < fullchain.pem > first_two.pem
现在该文件first_two.pem
包含来自 的前两个证书fullchain.pem
。
小心旧的DST 根 CA X3将在下次证书续订时重新增长。除非您有其他过时的系统需要现已过期的根 CA X3,否则您可能需要考虑更改 LetsEncrypt 续订脚本以完全消除过期的 X3 证书。如果您--preferred-chain "ISRG Root X1"
在命令行语法中使用该选项certbot
,您收到的证书将根本不会引用旧的根 CA X3。这样做,您就不需要执行上述操作。