- Формати .cer та .crt зазвичай містять публічні сертифікати X.509 у PEM або DER, тоді як .pfx та .p12 – це контейнери PKCS#12 із сертифікатом, ланцюжком та закритим ключем, захищеним паролем.
- PEM та PKCS#7 (.p7b) використовують кодування Base64 ASCII, DER та PKCS#12 є двійковими; всі вони представляють одну й ту саму криптографічну інформацію з різними контейнерами та використаннями.
- Закритий ключ передається у файлах .key або всередині .pfx/.p12, але ніколи не в .p7b; визначення місця розташування ключа є важливим для встановлення, експорту або поновлення сертифікатів.
- OpenSSL дозволяє конвертацію між PEM, DER, PKCS#7 та PKCS#12, що спрощує адаптацію будь-якого сертифіката до формату, необхідного для кожного сервера або системи.

Якщо ви прийшли сюди в пошуках Відмінності між .pfx, .p12, .cer та .crt, seguramente te hayas pegado ya con más de un fichero raro al instalar un certificado digital o un SSL en un servidor. No eres la única persona: entre siglas, extensiones y formatos, es fácil liarse y no saber qué hace cada archivo ni cuál necesitas en cada caso.
Lo bueno es que, aunque los nombres impongan respeto, todo esto se puede explicar de manera bastante sencilla si entendemos que todos estos ficheros no son más que контейнери сертифікатів та ключів у різних форматах (текстовому або двійковому) та розроблених для різних систем (Windows, Linux(Java, браузери тощо). Ми розглянемо їх по черзі, спокійно, та пов’яжемо їх між собою, щоб ви точно знали, що таке кожна річ, для чого вона потрібна та як її використовувати або конвертувати за потреби.
Що таке цифровий сертифікат і як поєднуються .pfx, .p12, .cer та .crt?
Цифровий сертифікат – це не що інше, як електронний документ, підписаний центром сертифікації (CA або, згідно з регламентом eIDAS, кваліфікований постачальник послуг), який пов’язує особу з відкритим ключем. Ця особа може бути особою, компанією, веб-сервером, доменом тощо.
Для досягнення цього з'єднання використовується наступне: криптографія з відкритим ключем або асиметрична криптографія: existe un par de claves, una pública (que cualquiera puede conocer) y una privada (que solo debe tener el titular). Lo que se cifra con la clave pública solo se descifra con la privada, y viceversa, permitiendo autenticación, cifrado y firma electrónica.
За всіма цими сертифікатами стоїть інфраструктура відкритих ключів або PKIщо включає центр сертифікації, центри реєстрації, сховища сертифікатів, списки відкликаних сертифікатів (CRL) та, в багатьох середовищах, центр позначок часу (TSA) для запису часу підписання.
La estructura interna de la inmensa mayoría de certificados de uso general sigue el estándar X.509, визначений ITU та детально описаний у RFC 5280. Цей стандарт визначає такі поля, як версія, серійний номер, алгоритм підпису, емітент, термін дії, тема, відкритий ключ власника та можливі додаткові розширення.
Щодо алгоритмів, сертифікати зазвичай використовують асиметричну криптографію з RSA, DSA або ECDSA. RSA y ECDSA sirven tanto para firma como para cifrado, mientras que DSA se centra en la firma y verificación de firma digital.
Formatos internos y extensiones: PEM, DER, CER, CRT y compañía
Коли ми говоримо про такі розширення, як .cer, .crt, .pem, .der, .pfx, .p12 або .p7bНасправді ми змішуємо два поняття: формат кодування сертифіката (текст Base64 або двійковий файл) та функцію, яку виконує файл (лише сертифікат, сертифікат + закритий ключ, ланцюжок сертифікатів тощо).
На рівні внутрішнього формату сертифікати X.509 представлені як АСН.1 і зазвичай кодуються за допомогою DER (двійкового) або його текстового варіанту PEM (DER конвертується в Base64 та обгортається заголовками, такими як ПОЧАТОК/КІНЕЦЬ). Звідти різні системи та стандарти визначили специфічні контейнери наприклад, PKCS#7 (.p7b) або PKCS#12 (.pfx, .p12).
Щоб уникнути плутанини, потрібно пам'ятати, що розширення файлу часто є лише одним угода про іменуванняФайл .cer або файл .crt може містити одне й те саме, тільки один з них частіше використовується в середовищах Windows, а інший — в середовищах Unix/Linux, наприклад.
Dentro de este grupo general, hay algunos ключові формати Важливо чітко їх розуміти, оскільки саме з ними ви стикатиметеся постійно під час роботи з SSL/TLS або персональними сертифікатами.
Формат PEM: «читабельний текст» сертифікатів
Формат PEM є найпоширенішим для SSL/TLS-сертифікатів на серверах, таких як Apache або Nginx, та в більшості інструментів безпеки. PEM-файл — це просто DER, перекодований у Base64 та оточений текстовими заголовкамищо дозволяє відкривати та копіювати його за допомогою будь-якого редактора (Блокнот, nano, vim тощо).
PEM розпізнається, оскільки його вміст розділений такими рядками, як —–ПОЧАТИ СЕРТИФІКАТ—– y —–КІНЕЦЬ СЕРТИФІКАТУ—– коли він містить сертифікат, або —–ПОЧАТИ ПРИВАТНИЙ КЛЮЧ—– y —–КІНЕЦЬ ПРИВАТНОГО КЛЮЧА—– cuando alberga una clave privada. Todo lo que hay en medio es una cadena Base64 que representa los datos binarios originales.
В одному PEM-файлі ви можете мати лише сертифікатМожна надати сертифікат плюс проміжний ланцюжок ЦС, окремо закритий ключ або навіть весь пакет (закритий ключ, сертифікат сервера, проміжні сертифікати та кореневий сертифікат). Запити на підпис сертифіката також надаються в PEM. КСВ, que no son más que estructuras PKCS#10 recodificadas a texto.
Цей формат був спочатку визначений у RFC 1421-1424 як частина проекту Privacy-enhanced Electronic Mail, який не прижився для електронної пошти, але залишив чудовий текстовий формат для... транспортування криптографічних даних de forma cómoda, legible y fácil de copiar/pegar.
На практиці, файли з розширеннями .pem, .crt, .cer або .key У системах Unix/Linux це зазвичай PEM-файли. Зазвичай .key містить закритий ключ, .crt або .cer — сертифікат сервера, а іноді додатковий PEM-файл містить проміжний ланцюжок CA.
Formato DER: el binario puro y duro
DER (Distinguished Encoding Rules) es el формат двійкового кодування структур ASN.1, що описують сертифікат X.509. Це не текст, тому, якщо ви відкриєте його в редакторі, то побачите дивні символи замість типового рядка Base64.
Un archivo DER puede contener будь-який тип сертифіката або закритого ключаЗазвичай його ідентифікують за розширеннями .der або .cer, особливо в середовищах Windows або на платформах Java. У Windows файл .der безпосередньо розпізнається як файл сертифіката та відкривається у вбудованому переглядачі після подвійного клацання.
Практична відмінність PEM полягає в тому, що, хоча PEM можна легко скопіювати та надіслати електронною поштою або вставити у веб-форми, DER — це закритий бінарний об'єкт Розроблено для безпосереднього використання програмами. Однак внутрішньо інформація та сама: PEM — це не що інше, як DER, перекодований у текст Base64.
Herramientas como OpenSSL permiten pasar de DER a PEM y viceversa con un solo comando, sin alterar en absoluto el contenido lógico del certificado, únicamente su forma de representación.
Розширення .cer та .crt: той самий собака з різним нашийником
Las extensiones .cer y .crt se utilizan para designar файли, що містять публічні сертифікати, зазвичай у форматі PEM або DER, залежно від системи, в якій вони згенеровані або встановлені.
En muchos casos, un .crt en un servidor Apache será un сертифікований з PEM оточений заголовками BEGIN/END CERTIFICATE та готовий до вставки в блок конфігурації. У Windows файл .cer може бути як PEM, так і DER, хоча зазвичай він належить до будь-якої з категорій залежно від інструменту, який його створив.
Lo importante es entender que la extensión no define de forma estricta el formato interno: un .cer puede ser texto PEM o binario DER, y un visor o una utilidad como OpenSSL serán quienes determinen cómo leerlo. En navegadores y sistemas Windows, al hacer doble clic, se abrirá el переглядач сертифікатівде ви можете побачити емітента, тему, терміни дії, використання ключа тощо.
Під час експорту сертифіката без закритого ключа з браузера або сховища сертифікатів Windows зазвичай отримується файл .cer, який використовується для validar firmas, cadenas de confianza o cifrar informaciónале ніколи не підписувати від імені власника (для цього потрібен закритий ключ, який знаходиться окремо або всередині захищеного контейнера).
CSR, KEY, CA та проміжні файли: інші файли, що додаються до сертифіката
Під час обробки SSL-сертифіката або персонального сертифіката ви побачите не лише файли .pfx, .p12 або .cer. Весь процес також включає такі файли, як сертифікати .csr, .key або CA (кореневий та проміжний), які однаково важливі для роботи всього.
Запит на підпис або КСВ (.csr) Це файл, який зазвичай генерується на сервері, де буде встановлено SSL-сертифікат. Він містить відкритий ключ, доменне ім'я, організацію, країну та іншу інформацію, яку центр сертифікації використовуватиме для видачі сертифіката. Він відповідає стандарту PKCS#10 і зазвичай закодований у PEM, тому ви можете скопіювати та вставити його у форму постачальника.
Приватний ключ або КЛЮЧ (.key) Це файл, у якому зберігається секретний ключ, пов’язаний із сертифікатом. Зазвичай він має формат PEM, розділений BEGIN PRIVATE KEY та END PRIVATE KEY. Це надзвичайно конфіденційний файл, який не слід поширювати або завантажувати до публічних репозиторіїв, і в багатьох випадках він додатково захищений паролем.
Файл CA або сертифікат авторизації Він містить відкритий ключ сутності, яка видає або опосередковує сертифікат. Браузери та Операційна система Вони постачаються зі списком довірених центрів сертифікації за замовчуванням, але іноді потрібно встановити проміжні сертифікати, щоб завершити ланцюжок довіри, щоб клієнти могли без помилок перевіряти сертифікат вашого сервера.
Estos certificados intermedios se pueden suministrar como archivos PEM (.pem, .crt, .cer) o dentro de un contenedor como .p7bУ конфігураціях хостингу дуже часто запитують CRT (сертифікат домену), KEY (приватний ключ) та CA або проміжні файли сертифікатів для правильної інсталяції SSL.
PKCS#7 / P7B: cadena de certificados sin clave privada
PKCS#7, зазвичай представлений з розширеннями .p7b або .p7cЦе формат, призначений для групування одного або кількох сертифікатів у структурований контейнер без включення закритого ключа. Він зазвичай використовується для distribuir cadenas de certificados (сертифікат сервера плюс проміжні) у середовищах Windows або Java (Tomcat, сховище ключів тощо).
Файл .p7b зазвичай кодується в Base64 ASCII, подібно до файлу PEM, і спочатку був визначений у RFC 2315 як частина стандартів криптографії з відкритим ключем. Сьогодні його наступником є CMS (Cryptographic Message Syntax), але назва PKCS#7 все ще широко використовується у світі SSL-сертифікатів.
Цей формат дуже корисний, коли вам потрібно встановити весь ланцюжок довіри на сервері або в системі, яка керує сертифікатами через сховище (наприклад, сховище ключів Java). Зазвичай постачальник SSL надає сертифікат сервера з одного боку та файл .p7b з усім ланцюжком CA з іншого, або один файл .p7b, що містить усе.
Якщо ви хочете конвертувати файл .p7b у PEM, такі інструменти, як OpenSSL, дозволяють витягувати сертифікати за допомогою однієї команди та зберігати їх в одному або кількох текстових файлах. Потім ви можете розділити блоки BEGIN/END CERTIFICATE, якщо вам потрібно окремо завантажити їх на сервер.
Важливо зазначити, що файл PKCS#7 nunca contiene la clave privadaТому сам по собі він не корисний для підписання чи розшифрування: він лише надає публічну частину ланцюжка сертифікатів для перевірки довіри.
PKCS#12: Що таке .pfx та .p12?
Стандарт PKCS#12 визначає захищений паролем бінарний контейнер, який може містити публічні сертифікати, повні ланцюжки CA та закритий ключ пов'язаний. Найпоширенішими розширеннями для цього формату є .pfx та .p12, які практично еквівалентні.
Історично PKCS#12 починався як формат, тісно пов'язаний з Microsoft, але з el tiempo Він був стандартизований у RFC 7292 і використовується сьогодні у всіх типах систем, саме тому, що дозволяє безпечно транспортувати пару сертифікат + закритий ключ від однієї команди до іншої.
У світі Windows, коли ви експортуєте сертифікат "закритого ключа" зі сховища сертифікатів користувача або машини, майстер створює файл .pfx (або .p12), який містить усе необхідне для його імпорту в іншу систему: закритий ключ, власника сертифіката та зазвичай проміжний ланцюжок.
Під час створення або експорту файлу PKCS#12 система попросить вас вказати пароль захистуЦей пароль знадобиться пізніше для імпорту файлу в інший браузер, IIS, поштовий клієнт або навіть іншу операційну систему. Таким чином, якщо хтось викраде файл .pfx, він не зможе використовувати його, не знаючи цього пароля.
Такі інструменти, як OpenSSL, дозволяють конвертувати файл .pfx або .p12 у PEM, що дозволяє отримати текстовий файл, де можна легко знайти блок закритого ключа, сертифікат сервера та проміжні сертифікати, а також скопіювати їх, де це доречно (наприклад, на панелі хостингу, яка приймає окремо лише CRT, KEY та CA).
Поновлення, експорт та імпорт сертифікатів .pfx та .p12
У сфері персональних сертифікатів (наприклад, тих, що видані FNMT або іншими органами влади для цілей ідентифікації), спосіб їх резервного копіювання та поновлення тісно пов'язаний з використанням archivos .pfx o .p12, які подорожують на криптографічних картках, токенах USB або безпосередньо як захищені файли на комп’ютері.
Якщо термін дії вашого особистого сертифіката ще не закінчився, багато органів влади дозволяють Поновіть його онлайн: поновлення активується з точки реєстрації (професійна асоціація, компанія, постачальник послуг сертифікації тощо), і ви отримуєте посилання електронною поштою для завершення процесу з вашого власного комп’ютера.
En cambio, si el certificado ya ha caducado, normalmente tendrás que бути присутнім особисто Перейдіть до того ж пункту реєстрації зі своєю криптографічною карткою або пристроєм, де зберігається прострочений сертифікат, ідентифікуйте себе та запросіть новий сертифікат, який ви можете знову експортувати у форматі .pfx або .p12 для імпорту куди завгодно.
У браузерах, таких як Edge або Chrome, el proceso de importación pasa por el Сховище сертифікатів Windows. Desde la configuración de privacidad y seguridad puedes abrir el gestor de certificados, seleccionar la pestaña Personal e importar un archivo .pfx o .p12. El asistente te pedirá la contraseña del contenedor y te ofrecerá marcar la clave como exportable para futuras copias de seguridad.
Якщо замість файлу .pfx у вас є файл .cer без закритого ключа (піктограма сертифіката без ключа), цей файл буде корисним лише для instalar el certificado público (він відображається в розділі «Інші люди»), але не для підписання чи автентифікації. У такому разі ви не зможете отримати звідти закритий ключ, а якщо у вас немає іншої дійсної копії, єдиним варіантом буде запит на новий сертифікат.
Cómo se usan estos formatos en certificados SSL de servidor
У щоденній роботі з веб-серверами, VPNНезалежно від того, чи використовуються проксі-сервери, чи програми Java, різні формати сертифікатів залежать від системи та типу інсталяції. Налаштування Apache в Linux не те саме, що налаштування IIS у Windows або Tomcat на Java.
У середовищах Unix/Linux (Apache, Nginx, HAProxy тощо) нормально працювати з ficheros PEM separados: uno para la clave privada (.key), otro para el certificado del servidor (.crt o .cer) y, en ocasiones, otro más con la cadena de CA intermedia. Todo ello se referencia desde la configuración del servidor para levantar el TLS.
На платформах Windows (IIS, служби віддалених робочих столів тощо) дуже часто запитують .pfx або .p12 що містить і сертифікат, і закритий ключ, і ланцюжок. Майстер імпорту дбає про розміщення кожного елемента у відповідному сховищі, тому вам не потрібно турбуватися про внутрішні деталі.
У середовищах Java (Tomcat, програми з власним сховищем ключів) сховища типу JKS або PKCS №12У багатьох випадках файл .pfx імпортується безпосередньо, або сертифікати .p7b використовуються для налаштування ланцюжка довіри в сховищі ключів, залежно від інструменту та версії Java.
Купуючи SSL-сертифікат у стороннього постачальника, ви можете отримати різні комбінації файлів: файл CRT + CA у форматі PEM, файл .p7b, що містить рядок, або навіть попередньо підготовлений файл .pfx. Головне — визначити правильний тип файлу. dónde está la clave privada (якщо він постачається з вами, а не згенерований сервером) та який файл містить сертифікат сервера та проміжний ланцюжок.
У панелях керування хостингом вас зазвичай просять заповнити поля для CRT, KEY та, за бажанням, CA або проміжного сертифіката. Якщо у вас є лише файл .pfx, ви можете конвертувати його в PEM за допомогою OpenSSL та витягти звідти кожен блок, ретельно копіюючи від BEGIN до END кожного типу.
Конвертація між форматами сертифікатів за допомогою OpenSSL
Як тільки ви зрозумієте, що являє собою кожен файл, наступним логічним кроком буде дізнатися cómo convertirlos Коли сервер або програма запитує формат, відмінний від того, що надається вашим інтернет-провайдером або центром сертифікації, стандартним інструментом для цього є OpenSSL, доступний у більшості дистрибутивів Linux, а також встановлюваний у Windows.
Наприклад, якщо у вас є сертифікат у DER (.der, .cer) А якщо вам потрібно конвертувати його в PEM, достатньо буде однієї команди, яка бере цей двійковий файл і перекодує його в Base64 з відповідними заголовками. Аналогічно, ви можете перетворити PEM на DER, якщо ваша система приймає лише двійкові файли.
За допомогою файлу PKCS#7 (.p7b) ви можете використовувати OpenSSL для витягти сертифікати у форматі PEM за допомогою простої команди, яка друкує наявні сертифікати та зберігає їх у текстовому файлі. Звідти ви розділяєте різні блоки BEGIN/END CERTIFICATE, якщо вам потрібні окремі файли.
У випадку PKCS#12 (.pfx, .p12), OpenSSL дозволяє конвертувати контейнер у PEM-файл, що містить закритий ключ та всі сертифікати. Під час процесу вам буде запропоновано ввести пароль контейнера, і ви зможете вибрати, чи залишати закритий ключ зашифрованим, чи у вигляді звичайного тексту в PEM-файлі, залежно від його цільового використання.
Ці типи перетворень роблять можливими такі сценарії, як завантаження файлу .pfx на сервер Linux, перетворення його на PEM, а потім окремі ЕПТ та КЛАВІШ заповнити форму встановлення SSL, яка безпосередньо не підтримує контейнери PKCS#12.
Окрім прямих перетворень DER↔PEM, PEM↔PKCS#7, PKCS#7↔PKCS#12 та PKCS#12↔PEM, одна й та сама утиліта може генерувати CSR, керувати ключами, перевіряти сертифікати та терміни їх дії, що робить її базовим інструментом у будь-якому середовищі, яке працює з сертифікатами.
Види цифрових сертифікатів та сфери використання
Окрім формату файлу, також корисно чітко розуміти види сертифікатів залежно від їхнього використання або типу сутності, яку вони представляють, оскільки це впливає на те, як керуються їхніми резервними копіями, оновленнями та інсталяціями.
A nivel normativo europeo (Reglamento eIDAS), se distingue entre «Прості» електронні сертифікати та кваліфіковані сертифікатиПерші відповідають основним вимогам щодо ідентифікації та видачі, тоді як другі вимагають від постачальника суворіших процедур перевірки особи та суворіших технічних та організаційних умов. Яскравим прикладом в Іспанії є електронне посвідчення особи (DNIe).
Якщо ми подивимося, хто є власником, ми можемо мати сертифікати фізична особа, юридична особа або організація без правосуб'єктностіКожен з них використовується для підписання або автентифікації в різних сферах: особисті процедури, операції від імені компанії або податкові зобов'язання відповідно.
En el mundo de los servidores web, la familia de certificados más conocida es la de Сертифікати SSL/TLSЦі сертифікати встановлюються на серверах для шифрування каналу зв'язку з користувачами. Вони включають такі варіанти, як однодоменні, шаблонні та багатодоменні (SAN) сертифікати, які відрізняються кількістю імен, які вони охоплюють, та рівнем перевірки.
Незалежно від типу, всі ці сертифікати можуть зберігатися та розповсюджуватися в однакових форматах: файли .cer, .crt, .pem, .p7b або контейнери .pfx/.p12, залежно від системи, де вони будуть використовуватися, та обраного методу їх транспортування або резервного копіювання.
La utilidad de los certificados digitales es enorme: Вони гарантують конфіденційність та автентичність засоби комунікацій, вони дозволяють використовувати юридично дійсні електронні підписи, спрощують адміністративні та комерційні процедури, а також забезпечують безпечне функціонування багатьох мережевих сервісів без необхідності турбуватися користувачеві про криптографічні деталі.
На цьому етапі зрозуміло, що розширення, такі як .pfx, .p12, .cer або .crt, – це просто різні способи упаковки одного й того ж: сертифіката X.509, закритого ключа та, де це можливо, ланцюжка довіри, які, залежно від середовища, представлені як текстові контейнери Base64, двійкові DER або контейнери PKCS для полегшення встановлення та розгортання. транспортування між системами.
Пристрасний письменник про світ байтів і технологій загалом. Я люблю ділитися своїми знаннями, пишучи, і саме це я буду робити в цьому блозі, показуватиму вам все найцікавіше про гаджети, програмне забезпечення, апаратне забезпечення, технологічні тренди тощо. Моя мета — допомогти вам орієнтуватися в цифровому світі в простий і цікавий спосіб.
