194

I am using Windows and have been given a .cer file. How can I view the details of it?

1

6 Answers 6

326

OpenSSL will allow you to look at it if it is installed on your system, using the OpenSSL x509 tool.

openssl x509 -in cerfile.cer -noout -text

The format of the .CER file might require that you specify a different encoding format to be explicitly called out.

openssl x509 -inform pem -in cerfile.cer -noout -text

or

openssl x509 -inform der -in cerfile.cer -noout -text

On Windows systems you can right click the .cer file and select Open. That will then let you view most of the meta data.

On Windows you run Windows certificate manager program using certmgr.msc command in the run window. Then you can import your certificates and view details.

8
  • 15
    I get "4726:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:632:Expecting: TRUSTED CERTIFICATE" when I do this in Linux
    – yazz.com
    Dec 23, 2010 at 9:51
  • 1
    I've added some clarifications on some OpenSSL options to specify different encoding formats - given your error specifying DER format looks like it would work.
    – Helvick
    Dec 23, 2010 at 10:31
  • 1
    Thanks, "openssl x509 -inform der -in cerfile.cer -noout -text" worked!
    – yazz.com
    Dec 23, 2010 at 12:25
  • 2
    Linux gui version: gcr-viewer. Aug 14, 2014 at 4:11
  • 10
    when getting :0906D06C:PEM routines:PEM_read_bio" error, u will need to use the 3rd command given, with -inform der
    – user289547
    May 18, 2015 at 10:39
39

If you're using Windows, you can use console util

certutil -dump <file>
2
11

All answers here fail for MacOS. The only thing that works in Sierra and High Sierra is:

openssl x509 -inform der -in cerfile.cer -noout -text
6
  • 16
    Helvick's answer (last updated in 2014) contains this exact line.
    – mwfearnley
    May 18, 2018 at 16:18
  • @mwfearnley You are right. However, he put the outdated solution first, the effective solution at last.
    – DawnSong
    Aug 20, 2019 at 8:54
  • 4
    Surely the necessary solution depends on the format of the certificate file, rather than the system it's used on?
    – mwfearnley
    Aug 20, 2019 at 9:44
  • 2
    I am on Mac OS Mojave. "$ openssl x509 -in host.crt.pem -noout -text" works fine without "inform der".
    – user674669
    Oct 28, 2019 at 22:16
  • @user674669 The pem format is base64, which can be viewed with any text editor.
    – DawnSong
    Jul 10, 2020 at 7:00
5

You can import and preview it by Powershell:

Get-ChildItem –Path c:\file.cer | Import-Certificate –CertStoreLocation cert:\LocalMachine\My

then view it in Windows certmgr.msc or load directly to Powershell

SET-LOCATION CERT:\LOCALMACHINE\my
GET-CHILDITEM –RECURSE | FORMAT-LIST –PROPERTY *

or by Thumbprint

$cert = (Get-ChildItem –Path cert:\LocalMachine\My\AE53B1272E43C14545A448FB892F7C07A217A761)

Don't forget to IMPORT-MODULE PKI

Or you can also view, export, import, and delete certificates by using Internet Explorer.

To view certificates with Internet Explorer

  1. In Internet Explorer, click Tools, then click Internet Options to display the Internet Options dialog box.
  2. Click the Content tab.

  3. Under Certificates, click Certificates. To view details of any certificate, select the certificate and click View.

1
  • 1
    Import-Certificate is not available for me (Win 7/PS 5)
    – jpaugh
    Oct 28, 2019 at 22:31
3

I know this is an old question, but I saw no one provided a workable solution for windows 7 using only powershell. That didn't require the extra hassle of importing it into the certificate store,other tom foolery like using IE or certutil. I happened to have the same issue today, and this is the solution I came up with:

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

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

$cert.GetEffectiveDateString() $cert.GetSerialNumber() $cert | get-member etc..

One thing the x509CErtificate class does not contain is the ability to read CRLs. In order to do that you have to use something like Mono since it has a class that will read them

1

I found openssl quite limiting (cannot parse content of chain/bundle, output is quite noisy for my needs, ...), I have created certinfo project on github, which can parse chain/bundle, accepts multiple files as argument and can get cert info from host as well if the argument is in the form of host:port.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.