How do I view the details of a digital certificate .cer file?
OpenSSL will allow you to look at it if it is installed on your system, using the OpenSSL x509 tool.
openssl x509 -noout -text -in 'cerfile.cer';
The format of the .CER file might require that you specify a different encoding format to be explicitly called out.
openssl x509 -inform pem -noout -text -in 'cerfile.cer';
openssl x509 -inform der -noout -text -in 'cerfile.cer';
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.
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
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.
when getting :0906D06C:PEM routines:PEM_read_bio » error, u will need to use the 3rd command given, with -inform der
If you’re using Windows, you can use console util
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
@mwfearnley You are right. However, he put the outdated solution first, the effective solution at last.
Surely the necessary solution depends on the format of the certificate file, rather than the system it’s used on?
I am on Mac OS Mojave. «$ openssl x509 -in host.crt.pem -noout -text» works fine without «inform der».
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 *
$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
- In Internet Explorer, click Tools, then click Internet Options to display the Internet Options dialog box.
- Click the Content tab.
- Under Certificates, click Certificates. To view details of any certificate, select the certificate and click View.
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 .
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.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
Где в Linux хранятся корневые сертификаты Центров Сертификации (CA)
Консолидированный файл, включающий в себя все корневые сертификаты CA операционной системы, находится в файле /etc/ssl/certs/ca-certificates.crt. Этот файл может быть символической ссылкой на фактическое расположение сертификатов в файлах /etc/ssl/cert.pem или /etc/ca-certificates/extracted/tls-ca-bundle.pem.
Корневые CA сертификаты в виде отдельных файлов расположены в директории /etc/ssl/certs, в этой директории могут быть ссылки на фактическое расположение сертификатов, например, в /etc/ca-certificates/extracted/cadir/.
Для просмотра Subject всех корневых CA сертификатов в системе:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/;' < /etc/ssl/certs/ca-certificates.crt
Эти сертификаты используются утилитоми curl, wget и другими. Веб-браузеры Chromium и Firefox используют свои собственные хранилища корневых CA сертификатов.
Чтобы узнать, где веб браузеры хранять корневые CA сертификаты в Linux, нам нужно познакомиться с NSS.
Mozilla Network Security Services (NSS)
Network Security Services (NSS) это набор библиотек, разработанных для поддержки кросс-платформенной разработки защищенных клиентских и серверных приложений. Приложения построенные с использование NSS могут использовать SSL v2 и v3, TLS, PKCS#5, PKCS#7, PKCS#11, PKCS#12, S/MIME, сертификаты X.509 v3 и другие стандарты обеспечения безопасности.
В отличие от OpenSSL, NSS использует файлы базы данных в качестве хранилища сертификатов.
NSS начинается с жёстко закодированного списка доверенных сертификатов CA внутри файла libnssckbi.so. Этот список можно просмотреть из любого приложения, использующего NSS, способного отображать (и манипулировать) хранилищем доверенных сертификатов, например, Chrome-совместимые или Firefox-совместимые браузеры.
Некоторые приложения, использующие библиотеку NSS, используют хранилище сертификатов, отличное от рекомендованного. Собственный Firefox от Mozilla является ярким примером этого.
В вашем дистрибутиве скорее всего уже установлен пакет NSS, в некоторых дистрибутивах он называется libnss3 (Debian и производные) в некоторых — nss (Arch Linux, Gentoo и производные).
Если вы хотите просматривать и изменять хранилища сертификатов NSS, то понадобиться утилита certutil. В Arch Linux эта утилита входит в пакет nss и, следовательно, предустановлена в Arch Linux. А в Debian и производные установка делается так:
sudo apt install libnss3-tools
Google Chrome / Chromium
Как уже было сказано, при работе на Linux, Google Chrome использует библиотеку Mozilla Network Security Services (NSS) для выполнения верификации сертификатов.
Корневые CA сертификаты, которые добавил пользователь, хранятся в файле ~/.pki/nssdb/cert9.db, их можно просмотреть командой:
Поскольку Chrome не может удалить сертификаты из хранилища NSS, то если вы отключите некоторые из них в настройках веб браузера (Privacy and security → Manage certificates → Authorities), то в том же файле, где хранятся добавленные пользователем корневые CA сертификаты, будут сохранены изменения о полномочиях отключённого сертификата:
Используемые в Google Chrome / Chromium корневые CA сертификаты в Linux можно посмотреть следующим причудливым способом:
1. Найдите расположение файла libnssckbi.so (как было сказано в предыдущем разделе, в нём NSS хранит доверенные корневые сертификаты):
Примеры расположений этого файла:
- /usr/lib/libnssckbi.so
- /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
2. Теперь выполните команду вида:
ln -s /ПУТЬ/ДО/libnssckbi.so ~/.pki/nssdb
ln -s /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so ~/.pki/nssdb
2. Затем запустите команду:
certutil -L -d sql:$HOME/.pki/nssdb/ -h 'Builtin Object Token'
Вы увидите доверенные корневые сертификаты, которые использует Google Chrome в Linux.
Также вы можете просмотреть корневые CA сертификаты в настройках браузера:
Конфиденциальность и безопасность (выбрать «Ещё») → Настроить сертификаты → Центры сертификации, на английском это Privacy and security → Manage certificates → Authorities.
Firefox
Поскольку Firefox принадлежит Mozilla, то этот веб браузер, конечно, также использует Mozilla Network Security Services (NSS).
Стандартными расположениями папок с базами данных NSS являются:
- ~/.pki/nssdb (на уровне пользователей)
- /etc/pki/nssdb (на общесистемном уровне, может отсутствовать)
Firefox НЕ использует ни одно из этих стандартных расположений, база данных хранится в профиле пользователя, который имеет общий вид ~/.mozilla/firefox/СЛУЧАЙНЫЕ-БУКВЫ-ЦИФРЫ.default/cert9.db, например, ~/.mozilla/firefox/3k0r4loh.default/cert9.db.
Посмотреть корневые сертификаты CA которые использует Firefox в Linux можно следующей командой:
certutil -L -d ~/.mozilla/firefox/*.default/
У Firefox-esr это папка:
certutil -L -d ~/.mozilla/firefox/*.default-esr/
Также вы можете просмотреть корневые CA сертификаты в настройках браузера:
Приватность и Защита → Сертификаты → Просмотр сертификатов → Центры сертификации:
Thunderbird
Чтобы просмотреть, каким CA доверяет Thunderbird:
certutil -L -d ~/.thunderbird/*.default/
Чтобы найти все файлы cert9.db выполните команду:
Для глубокого понимания OpenSSL смотрите также полное руководство: «OpenSSL: принципы работы, создание сертификатов, аудит».