如何查看数字证书 .cer 文件的详细信息?

yaz*_*com 171 certificate openssl ssl-certificate

我正在使用 Windows 并获得了一个 .cer 文件。我如何查看它的详细信息?

Hel*_*ick 282

如果您的系统上安装了OpenSSL,您可以使用OpenSSL x509 工具查看它。

openssl x509 -in cerfile.cer -noout -text
Run Code Online (Sandbox Code Playgroud)

.CER 文件的格式可能要求您指定要显式调用的不同编码格式。

openssl x509 -inform pem -in cerfile.cer -noout -text
Run Code Online (Sandbox Code Playgroud)

或者

openssl x509 -inform der -in cerfile.cer -noout -text
Run Code Online (Sandbox Code Playgroud)

在 Windows 系统上,您可以右键单击 .cer 文件并选择打开。这将让您查看大部分元数据。

在 Windows 上,您可以在运行窗口中使用 certmgr.msc 命令运行 Windows 证书管理器程序。然后您可以导入您的证书并查看详细信息。

  • 我在 Linux 中执行此操作时收到“4726:error:0906D06C:PEMroutines:PEM_read_bio:no start line:pem_lib.c:632:Expecting: TRUSTED CERTIFICATE” (13认同)
  • 当收到 `:0906D06C:PEMroutines:PEM_read_bio`" 错误时,你需要使用给出的第三条命令,以及 `-inform der` (10认同)
  • 谢谢,“openssl x509 -inform der -in cerfile.cer -noout -text”有效! (4认同)
  • Linux gui 版本:gcr-viewer。 (2认同)

lun*_*con 34

如果您使用的是 Windows,则可以使用 console util

certutil -dump <file>
Run Code Online (Sandbox Code Playgroud)

  • 这是系统实用程序。我有 Windows 7。 https://technet.microsoft.com/en-US/en-en/library/cc732443(v=ws.10).aspx (7认同)

小智 10

对于 MacOS,这里的所有答案都失败了。在 Sierra 和 High Sierra 中唯一有效的是:

openssl x509 -inform der -in cerfile.cer -noout -text
Run Code Online (Sandbox Code Playgroud)

  • Helvick 的答案(上次更新于 2014 年)包含这一行。 (16认同)
  • 当然,必要的解决方案取决于证书文件的格式,而不是它所使用的系统? (4认同)
  • 我在 Mac OS Mojave 上。“$ openssl x509 -in host.crt.pem -noout -text”在没有“inform der”的情况下工作正常。 (2认同)

Krz*_*ski 5

您可以通过Powershell导入和预览它:

Get-ChildItem –Path c:\file.cer | Import-Certificate –CertStoreLocation cert:\LocalMachine\My
Run Code Online (Sandbox Code Playgroud)

然后在 Windows certmgr.msc 中查看或直接加载到 Powershell

SET-LOCATION CERT:\LOCALMACHINE\my
GET-CHILDITEM –RECURSE | FORMAT-LIST –PROPERTY *
Run Code Online (Sandbox Code Playgroud)

或按指纹

$cert = (Get-ChildItem –Path cert:\LocalMachine\My\AE53B1272E43C14545A448FB892F7C07A217A761)
Run Code Online (Sandbox Code Playgroud)

不要忘记导入模块 PKI

或者,您也可以使用Internet Explorer查看、导出、导入和删除证书。

使用 Internet Explorer 查看证书

  1. 在 Internet Explorer 中,单击工具,然后单击 Internet 选项以显示 Internet 选项对话框。
  2. 单击内容选项卡。

  3. 在证书下,单击证书。要查看任何证书的详细信息,请选择证书并单击查看。


小智 5

我知道这是一个老问题,但我看到没有人为仅使用 PowerShell 的 Windows 7 提供可行的解决方案。这不需要将其导入证书存储的额外麻烦,也不需要像使用 IE 或 certutil 这样的愚蠢行为。我今天碰巧遇到了同样的问题,这是我想出的解决方案:

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate

$cert.Import("D:\mycert.cer")

$cert.GetEffectiveDateString() 
$cert.GetSerialNumber() 
$cert | get-member 
etc..
Run Code Online (Sandbox Code Playgroud)

x509CEertificate 类不包含的一件事是读取 CRL 的能力。为了做到这一点,你必须使用像 Mono 这样的东西,因为它有一个可以读取它们的类


小智 5

我发现 openssl 相当有限(无法解析链/捆绑包的内容,输出对于我的需求来说非常嘈杂,...),我在 github 上创建了certinfo项目,它可以解析链/捆绑包,接受多个文件作为参数并可以获得如果参数采用host:port.