Конвертация сертификатов PKCS12 в PEM

Конвертация сертификатов PKCS12 в PEM

2024-12-13 · 2 мин. для прочтения

Конвертация сертификатов PKCS12 в PEM.

Содержание

1 Общая информация

  • В Windows обычно используются сертификаты в формате .pfx (PKCS12) для хранения закрытого и открытого ключа.
  • В Linux обычно используются сертификаты в формате .key и .crt (PEM).

2 Преобразование pfx в key и crt

  • Используем утилиту openssl:
    1openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out certificate.crt
    
  • Нужно будет ввести пароль, который вы указывали при экспорте .pfx-сертификата.
  • Если при создании сертификата в формате .pfx были использованы устаревшие алгоритмы, то мы получим ошибки (подобную следующей):
    1… error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported … Algorithm (RC2-40-CBC : 0)
  • Необходимо добавить флаг -legacy:
    1openssl pkcs12 -in certificate.pfx -clcerts -nokeys -legacy -out certificate.crt
    
  • Извлечём закрытую часть сертификата:
    1openssl pkcs12 -in certificate.pfx -nocerts -out key-encrypted.key
    
  • Необходимо ввести пароль, который использовался для экспорта .pfx-сертификата.
  • Также желательно задать пароль для .key-файла.
    • Второй пароль можете и не вводить, но лучше зашифровать ключ.
    • Закрытый ключ сертификата с парольной защитой не всегда удобно использовать для запуска демонов.
  • Можно удалить пароль закрытого ключа:
    1openssl rsa -in key-encrypted.key -out key-decrypted.key
    

3 Преобразование key и crt в pfx

  • Объединим crt и key в pfx:
    1openssl pkcs12 -inkey certificate.key -in certificate.crt -export -out certificate.pfx
    
  • Нужно будет ввести пароль от файла закрытого ключа (если этот пароль есть) и пароль для экспорта в pfx.