Перетворити .pfx у .cer


155

Чи можливо перетворити файл .pfx (обмін персональною інформацією) у файл .cer (сертифікат безпеки)? Якщо я не помиляюся, чи не .cer якось вбудований у .pfx? Я хотів би якийсь спосіб її витягти, якщо це можливо.

Відповіді:


90

простий спосіб, на який я вважаю, це імпортувати його та експортувати його за допомогою диспетчера сертифікатів у консолі управління Windows.


5
Я намагався робити це, але коли я вибираю експорт приватного ключа, я отримую .cer (DER закодований) варіант відключений. і утилітам середнього власника потрібен провакейке як завгодно ..
Jigar Joshi

3
Під час імпортування потрібно встановити прапорець, у якому написано "Позначте цей ключ як експортний"
Ендрю Кокс

11
Як дістатися до менеджера сертифікатів у Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
James White

12
Найпростіший спосіб відкрити менеджер сертифікатів Windows - це набрати "certmgr.msc" у командному рядку.
Ян Дерк

@AndrewCox, проте чи є якась різниця в закулісному періоді між позначенням його як експортованого та не маркуванням його як такого. Або це просто варіант інтерфейсу?
Pacerier

212

Файли PFX - це стандартні пакети синтаксису обміну персональною інформацією PKCS # 12 . Вони можуть включати довільну кількість приватних ключів із супровідними сертифікатами X.509 та ланцюжок повноважень сертифікатів (встановити сертифікати).

Якщо ви бажаєте витягти клієнтські сертифікати, ви можете скористатися інструментом PKCS12 OpenSSL .

openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts

Команда, наведена вище, виведе сертифікати (и) у форматі PEM. Розширенням файлу ".crt" обробляється як macOS, так і Window.

У запитанні ви згадуєте розширення ".cer", яке звичайно використовується для файлів, кодованих DER. Двійкове кодування. Спробуйте спочатку файл ".crt", і якщо це не прийнято, легко конвертувати з PEM в DER:

openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer

9
+1 для пояснення, що таке файл, окрім надання команд.
Джошуа Дрейк

"Помилка перевірки Mac: недійсний пароль?" коли я спробував це. Я не знаю паролів, у мене просто файл, який постачав мій постачальник.
Брайан Кноблауш,

1
Це здається, що викидання "-нокей" працює, коли ви намагаєтеся перетворити сертифікат із його приватними ключами, скажімо, для використання з Fiddler
Герт ван ден Берг

@Berk, окрім OpenSSL, чи має Windows cmd якийсь спосіб зробити це?
Pacerier

45

Якщо ви працюєте в PowerShell, ви можете використовувати щось на кшталт наступного, надаючи pfx-файл InputBundle.pfx , щоб створити кодований DER (бінарний) файл сертифікату OutputCert.der :

Get-PfxCertificate -FilePath InputBundle.pfx | 
Export-Certificate -FilePath OutputCert.der -Type CERT

Новий рядок додано для наочності, але ви, звичайно, можете це все мати в одному рядку.

Якщо вам потрібен сертифікат у форматі PEM, закодований ASCII / Base64, ви можете зробити додаткові кроки, щоб це зробити так, як це зафіксовано в інших місцях, наприклад тут: /superuser/351548/windows-integrated-utility-to-convert -der-to-pem

Якщо вам потрібно експортувати в інший формат, ніж закодований DER, ви можете змінити -Typeпараметр Export-Certificate для використання типів, що підтримуються .NET, як це показано в help Export-Certificate -Detailed:

-Type <CertType>
    Specifies the type of output file for the certificate export as follows. 
     -- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates. 
     -- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate. 
     -- P7B: A PKCS#7 file format which can contain one or more certificates.

Експорт-сертифікат доступний лише для деяких версій, таких як Win 8.1 та Server 2012 R2. Якщо ви перебуваєте в іншій версії, як Win 7, то не пощастить!
Глибокий-Б

1
Він повинен бути присутнім у серверах Server 2012 та Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ), але хороша думка про Windows 7 тощо!
Ян Галлахер

@IanGallagher, як це порівнюється з опцією OpenSSL?
Pacerier

Це набагато зручніше, якщо ви не хочете встановлювати речі OpenSSL!
Леонардо Еррера

25

Я хотів додати метод, який я вважаю найпростішим із усіх.

  1. Просто клацніть правою кнопкою миші файл pfx, натисніть «Встановити», слідуйте за майстром, і додайте його до магазину (я додав до Особистого магазину).

  2. У меню запуску введіть certmgr.msc та перейдіть до програми CertManager.

  3. Знайдіть свій сертифікат pfx (вкладки вгорі - це різні магазини), натисніть кнопку експорту та дотримуйтесь майстра (є можливість експортувати як .CER)

По суті, це робить те саме, що і у відповіді Ендрю, але він уникає використання консолі управління Windows (іде безпосередньо до імпорту / експорту).


Не набагато швидше, оскільки вам доведеться відкрити certmgr.msc, щоб експортувати його ....
Pacerier

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.