Захтев за подршку пита који се сертификат налази у VPN пакету, а први је импулс извести све и приложити. Датотека P12 пакује сертификате и материјал приватног кључа у један контејнер, па је извоз свега управо оно што не бисте смели да пошаљете. Наредба која одговара на питање је проблем избора, а не претварања. О томе коју половину контејнера добијате одлучују четири заставице, а две од њих звуче сигурније него што јесу.

Почните читањем контејнера уместо његовим пражњењем.

Шта датотека PKCS12 заправо садржи

Контејнер PKCS12 садржи један или више сертификата, могуће приватни кључ и message authentication code над садржајем. Сертификати могу укључивати завршни сертификат вашег идентитета клијента и посредничке сертификате који га повезују са CA. Кључ, када је присутан, оно је што датотеку чини тајном, а не документом.

Та разлика је разлог зашто -nokeys постоји и зашто је то заставица која треба овом задатку.

Прочитајте пакет без исписивања кључа

Облик за преглед исписује структуру и појединости алгоритама и ништа не записује: openssl pkcs12 -in client.p12 -info -noout. Пита за лозинку за увоз, што је право место за ту вредност, и говори вам садржи ли датотека уопште кључ. Употребите -passin env:PKCS12_PASS када се лозинка не може уписати, јер је лозинка у наредби љуске лозинка на списку процеса. Овај корак ништа не извози, и то је цео смисао.

У излазу прочитајте три ствари: колико сертификата, је ли кључ присутан и који га алгоритми штите.

Употребите -nokeys и немојте га заменити са -nocerts

-nokeys искључује приватне кључеве и оставља сертификате. -clcerts то сужава на сертификате клијента, -cacerts то сужава на сертификате CA, а то су двоје филтри, а не алтернативе. -nocerts чита се као сигуран запис исте замисли и значи супротно: нема сертификата, што оставља само кључеве. Умешати га у извоз сертификата начин је на који приватни кључ заврши на диску.

Дворедни облик који производи датотеку сертификата и датотеку CA и ништа друго јесте:

openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pem

Старији пакети требају -legacy на OpenSSL 3 за читање свог старијег шифровања, а та заставица мења шта парсер прихвата, а не шта исписује. Ако рашчламба не успе с грешком о неподржаном алгоритму, додавање -legacy исправан је први потез, а прескакање провере MAC није.

Проверите излаз, а не излазни кôд

Нулти излазни статус говори да се наредба извршила, а не да датотека садржи оно што очекујете. Пребројте сертификате у излазу и прочитајте subject и датуме: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Упоредите отисак с оним који очекује тим за подршку, јер пакет са два сертификата клијента ствара датотеку са два блока, а већина алата чита само први. Сврха, поверење и подударање кључа опет су одвојени тестови.

Сертификат који се може рашчланити јесте сертификат који се може рашчланити. Није то сертификат који VPN прихвата.

Одлучите да ли вам датотеке уопште требају

Ако клијент који га прима увози PKCS12 директно, слање изворног пакета одобреним каналом уз лозинку држано одвојено једноставније је и чува заштиту. Излучивање је за преглед, за клијента који треба PEM или за случај подршке који је затражио одређени артефакт. Свако излучивање уклања један слој и требало би да има разлог.

Јавни сертификати не садрже приватни кључ, али садрже имена и податке о организацији. Поделите поља која је захтев тражио уместо датотеке, осим ако је затражена управо датотека.

Повезани чланци