当前位置: 首页 > 面试题库 >

如何将CA证书捆绑包拆分为单独的文件?

段干飞翔
2023-03-14
问题内容

我正在使用OpenSSL,并且需要健全的默认CA列表。我使用的是cURL捆绑提供的
Mozilla的受信任CA列表。但是,我需要拆分这组CA证书,因为OpenSSL文档说:

如果CApath不为NULL,则它指向包含PEM格式的CA证书的目录。每个文件包含一个CA证书。通过CA使用者名称哈希值查找文件,因此必须可用。

例如,ca-bundle.crt直接使用文件可以正常工作:

openssl-1.0.1g> ./apps/openssl s_client -connect www.google.com:443 -CAfile /home/user/certs/ca-bundle.crt
...
    Verify return code: 0 (ok)
---
DONE

但是指定包含ca-bundle.crt文件的目录不起作用:

openssl-1.0.1g> ./apps/openssl s_client -connect www.google.com:443 -CApath /opt/aspera/certs
    Verify return code: 20 (unable to get local issuer certificate)
---
DONE

我认为这是因为我的文件夹没有遵循文档的要求(即,目录包含PEM格式的CA证书,每个文件都包含一个证书,以哈希值命名)。我的目录只有一捆证书。

如何拆分我的证书包,以遵守OpenSSL的要求,即每个证书都位于单独的文件中?如果也可以进行哈希处理,则可以得到一些好处(不过如果需要的话,如果所有证书都位于单独的文件中,我可以自己编写一个脚本来执行此操作)。


问题答案:

您可以awk在适当的目录中使用来拆分捆绑包,如下所示:

awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ca-bundle.pem

然后,通过运行c_rehashOpenSSL随附的实用程序来创建OpenSSL所需的链接:

c_rehash .

注意:在非linux平台上使用’gawk’-如上所述,它依赖于GNU特定功能。



 类似资料:
  • 我正在制作一个运行在karaf 4.0.4上的osgi应用程序。 我的应用程序使用一个PostgreSQL数据库。连接器由pax jdbc处理。我使用Karaffeature和功能。 一些模块提供可以添加/删除的服务。 TL/DR:有没有办法将我的实体拆分成多个包? 以下是我的情况: 我目前有一个名为model的模块 我的文件 类注释 注释的类和 访问我实体的服务 这是我的持久性文件: 以及用于访

  • 谷歌云SQL通过为您生成服务器和SSL连接。我通过以下步骤设法让我的Java客户端连接到云SQL: 1)将服务器CA证书导入信任库文件: 2) 将客户端证书和客户端密钥捆绑到pkcs12文件中: 3)将pkcs12导入密钥库文件: 4)告诉JVM使用我的信任库和密钥库: 这一切都有效,但不幸的是,它排除了来自其他客户端库的出站HTTPS连接——在我的例子中,是Firebase java客户端库。问

  • 问题内容: 我有一个很大的JSON文件,它是对象的对象,我想在对象键之后将其拆分成单独的文件名。是否可以使用jq或任何其他现成的工具来实现此目的? 原始JSON格式如下 鉴于此输入,我想生成文件item1.json,item2.json等。 问题答案: 这应该给您一个开始: 或者当您坚持使用一些较卑鄙的语法时,似乎有些人更喜欢:

  • 问题内容: 我想将我的int值拆分为数字。例如,如果没有。是542,结果应为5,4,2。 我有2个选择。1)将int转换为String,然后使用getCharArray(),我可以使用单独的字符,然后将它们转换回int值。 2)将int转换为String,而不将其转换为char数组,对其进行迭代并获取所有数字。 还有其他解决方法。如果没有,哪个选项会很快? 问题答案:

  • $title=$\请求['test\u bestellte\u title'] $anzahl=$_请求['test_bestellte_anzahl'] $groesse=$\u请求['test\u bestellette\u groesse']; 我想将这个值数组插入到sql表中,比如 但我不知道如何像上面所示插入它 到目前为止,我把他们分开了,这就是我被困的地方 提前感谢!

  • 问题内容: 我在Java中有一个X509Certificate实例,我需要确定它是CA证书还是用户证书。 谁能提供任何帮助? 提前致谢! 问题答案: 根据我进行的研究,可以通过检查基本约束来检查它!检查API以获取方法的返回结果。 因此,如果该方法返回结果,则可以将证书视为。 我已经用几个(根目录和中间目录)检查了它,它按描述的那样工作。我还用几个用户证书检查了此方法,该方法返回-1作为结果。