Чи можливо перетворити файл .pfx (обмін персональною інформацією) у файл .cer (сертифікат безпеки)? Якщо я не помиляюся, чи не .cer якось вбудований у .pfx? Я хотів би якийсь спосіб її витягти, якщо це можливо.
Чи можливо перетворити файл .pfx (обмін персональною інформацією) у файл .cer (сертифікат безпеки)? Якщо я не помиляюся, чи не .cer якось вбудований у .pfx? Я хотів би якийсь спосіб її витягти, якщо це можливо.
Відповіді:
простий спосіб, на який я вважаю, це імпортувати його та експортувати його за допомогою диспетчера сертифікатів у консолі управління Windows.
Файли 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
Якщо ви працюєте в 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.
Я хотів додати метод, який я вважаю найпростішим із усіх.
Просто клацніть правою кнопкою миші файл pfx, натисніть «Встановити», слідуйте за майстром, і додайте його до магазину (я додав до Особистого магазину).
У меню запуску введіть certmgr.msc та перейдіть до програми CertManager.
Знайдіть свій сертифікат pfx (вкладки вгорі - це різні магазини), натисніть кнопку експорту та дотримуйтесь майстра (є можливість експортувати як .CER)
По суті, це робить те саме, що і у відповіді Ендрю, але він уникає використання консолі управління Windows (іде безпосередньо до імпорту / експорту).
openssl rsa -in f.pem -inform PEM -out f.der -outform DER