当前位置: 首页 > 知识库问答 >
问题:

如何通过openssl检索证书链

红富
2023-03-14

我必须从remore服务器检索并下载本地环境证书链。我可以使用浏览器嵌入式服务来实现,但据我所知,这种方法对证书链不起作用(或者有一些瓶颈)。这就是我试图使用openssl以下命令的原因:

openssl s_client-showcerts-connect host.host:9999

它将打印出相应的证书信息,如:

CONNECTED(0000015C)
depth=1 /C=US/O=Google Inc/CN=Google Internet Authority
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com
   i:/C=US/O=Google Inc/CN=Google Internet Authority
-----BEGIN CERTIFICATE-----
MIIcFzCCG4CgAwIBAgIGR09PUAFxMA0GCSqGSIb3DQEBBQUAMEYxCzAJBgNVBAYT
-----END CERTIFICATE-----
 1 s:/C=US/O=Google Inc/CN=Google Internet Authority
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
-----BEGIN CERTIFICATE-----
MIICsDCCAhmgAwIBAgIDC2dxMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
-----END CERTIFICATE-----
---
Server certificate
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com
issuer=/C=US/O=Google Inc/CN=Google Internet Authority
---
No client certificate CA names sent
---
SSL handshake has read 8040 bytes and written 310 bytes 

我怎样才能将它转换为.crt或.cer格式?我可以只复制/粘贴到文本文件的适当扩展名吗?如果是,链的起点和终点在哪里?

共有1个答案

东方国安
2023-03-14

我不知道你所说的“.crt”或“.cer”格式到底是什么意思。如果您在-begin certificate----和-end certificate----之间复制这些输出片段,并将它们保存到一个文本文件中,您将得到一个PEM格式的证书链文件(openssl的默认格式)。您的文件应该如下所示(链中有2个证书):

-----BEGIN CERTIFICATE-----
MIIF/DCCBWWgAwIBAgIKUCYyawAAAAB1rzANBgkqhkiG9w0BAQUFADBGMQswCQYD
<the rest of the certificate 1>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICsDCCAhmgAwIBAgIDC2dxMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
<the rest of the certificate 2>
-----END CERTIFICATE-----
 类似资料:
  • 我使用下面的逗号创建了一个自签名的openssl证书。 null 上述签名的RSA_verify仍然成功。你能帮我做这个吗? 向你问好,Poornima.m.

  • 但是,为了签署请求,openSSL提供了两个工具:ca和X509。然而,这些都不允许使用SHA256。根据官方文档,ca只支持md5、sha1和MDC2。x509仅支持md2、md5、sha1、MDC2。 谢谢你。

  • 我正在使用下面的命令生成一个私钥和公钥。 openssl genrsa-out private.pem 2048 openssl rsa-in private.PEM-outform PEM-pubout-out public.PEM 但是我无法在这里添加过期日期,如何在这里将过期数据添加到公钥中。

  • 我正在用以下组件构建自己的证书链: 根证书是自签名证书,中间证书由根证书和用户由中间证书签名。 现在我想验证一个用户证书是否有其根证书的锚。 具有 验证是可以的。在下一步中,我将使用 验证结果显示 什么是错的?

  • 问题内容: 我可以通过JNDI读取LDAP中存储的密码。但是结果是一些乱码。那么我该如何解密呢? 下面是我的代码: 有什么建议吗?? 提前谢谢了 凯文 问题答案: 您所看到的([B @ 1cd8669)是Java所说的“这是一个字节数组”。 存储的“密码”很可能是真实密码的哈希值或加密版本。顾名思义,密码散列是不可逆的,因此,如果LDAP存储散列,则您将无法查看用户的密码。 如果它是加密的,那么如

  • 我在本地机器上开发了一个webapp,并使用mailtrap.io电子邮件测试服务来检查传出的电子邮件。我没有更改任何内容,但几天前mailtrap服务返回了以下错误消息: Mailtrap建议如下: 关于SSL错误,当试图发送电子邮件到Mailtrap时,您并不孤单。请更新您的OpenSSL版本,您可能会听到关于Letsencrypt证书的全局问题:它的旧根证书已于9月30日过期。它主要影响使用