我有一个 PEM 格式的 SSL CRT 文件。有没有办法可以从命令行中的证书中提取通用名称 (CN)?
我正在尝试验证/验证存储在此处的 rsa 密钥、ca-bundle 和证书是否正常。它们不是由网络服务器提供的。我如何验证它们?
我在生成 opensslPEM_read_bio_RSA_PUBKEY()函数可以使用的公钥时遇到问题。我不断收到错误。
显然我不能简单地在ssh-keygen <>.pub密钥文件中使用 ASCII 字符串,因为它是 SSH 文件格式,或者我可能是SubjectPublicKeyInfo结构。
这是密钥生成代码: ssh-keygen -t rsa -b 1024 -C "Test Key"
我在网络上的 php 中找到了一个转换器,它将公钥的内容转换为 base64 PEM ASCII 字符串格式。然而,该功能仍然不喜欢它。
Openssl 文档指出:
如何将我的 OpenSSH 公钥转换为 OpenSSL 函数将使用它的任一格式?
我有一个终端实体/服务器证书,它有一个中间证书和根证书。当我cat在最终实体证书上时,我只看到一个BEGIN和END标签。它是唯一的最终实体证书。
有什么办法可以查看中间证书和根证书内容。我只需要BEGIN和END标签的内容。
在 Windows 中,我可以从“认证路径”中看到完整的证书链。下面是 Stack Exchange 证书的示例。
从那里我可以执行查看证书并导出它们。我可以在 Windows 中为 root 和中级用户做到这一点。我正在 Linux 中寻找相同的方法。
我有一个包含完整证书链和私钥的 PKCS12 文件。我需要将它分成 3 个文件用于应用程序。我需要的3个文件如下(PEM格式):
这是我必须执行的一项常见任务,因此我正在寻找一种无需手动编辑输出即可完成此任务的方法。
我尝试了以下方法:
openssl pkcs12 -in <filename.pfx> -nocerts -nodes -out <clientcert.key>
openssl pkcs12 -in <filename.pfx> -clcerts -nokeys -out <clientcert.cer>
openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain -out <cacerts.cer>
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是,输出包含包属性,应用程序不知道如何处理。
经过一番搜索,我找到了一个建议的解决方案,即通过 x509 传递结果以去除包属性。
openssl x509 -in <clientcert.cer> -out <clientcert.cer>
Run Code Online (Sandbox Code Playgroud)
这有效,但我遇到了 cacert 文件的问题。输出文件仅包含链中的 3 个证书之一。
有没有办法避免在 pkcs12 命令的输出中包含包属性,或者有没有办法让 x509 命令输出包含所有证书?此外,如果通过 x509 运行它是最简单的解决方案,有没有办法将 pkcs12 的输出通过管道传输到 x509 而不是两次写出文件?
我正在尝试编译一个程序,根据文档,该程序需要“OpenSSL 库”。我已经安装了 OpenSSL,但它仍然给我错误openssl/sha.h: No such file or directory。是否有其他一些必须安装的库?
我的 git 客户声称
error: Peer's Certificate issuer is not recognized.
Run Code Online (Sandbox Code Playgroud)
这意味着它无法在全局系统密钥环中找到相应的 ssl 服务器密钥。我想通过查看gentoo linux 系统上所有系统范围内可用的 ssl 密钥列表来检查这一点。我怎样才能得到这个列表?
我需要在 DNS 中为我的主机设置 SSHFP 记录。我已经做了一些搜索,但我还没有找到任何好的例子。
如果你在你的 Unix 上运行这个命令
echo -n "foo" | openssl dgst -sha1
Run Code Online (Sandbox Code Playgroud)
你会得到这个输出:
(stdin)= 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33
Run Code Online (Sandbox Code Playgroud)
(后跟换行符)。
如何强制 openssl 不显示(stdin)=前缀,并避免尾随换行符?