Exportați certificatele dintr-un P12 fără cheia privată
Un pachet PKCS12 conține chei și certificate împreună. Citiți mai întâi structura, apoi selectați certificatele cu -nokeys în loc să eliminați protecția.
Tichetul de suport întreabă ce certificat se află în pachetul VPN, iar primul impuls este să exportați totul și să-l atașați. Un fișier P12 împachetează certificatele și materialul cheii private într-un singur container, așa că a exporta totul este exact ceea ce nu ar trebui să trimiteți. Comanda care răspunde la întrebare este o problemă de selecție, nu de conversie. Patru opțiuni decid ce jumătate a containerului obțineți, iar două dintre ele sună mai sigure decât sunt.
Începeți prin a citi containerul în loc să-l goliți.
Ce conține de fapt un fișier PKCS12
Un container PKCS12 conține unul sau mai multe certificate, posibil o cheie privată și un message authentication code asupra conținutului. Certificatele pot include certificatul frunză al identității dvs. de client și intermediarele care îl leagă de o CA. Cheia, când este prezentă, este ceea ce face fișierul un secret și nu un document.
Această distincție este motivul pentru care -nokeys există și pentru care este opțiunea de care are nevoie această sarcină.
Citiți pachetul fără a scrie cheia
Forma de inspecție afișează structura și detaliile algoritmilor și nu scrie nimic: openssl pkcs12 -in client.p12 -info -noout. Cere parola de import, care este locul potrivit pentru acea valoare, și vă spune dacă fișierul conține deloc o cheie. Folosiți -passin env:PKCS12_PASS când parola nu poate fi tastată, deoarece o parolă dintr-o comandă shell este o parolă din lista de procese. Acest pas nu exportă nimic, iar acesta este tot rostul.
Citiți rezultatul pentru trei lucruri: câte certificate, dacă există o cheie și ce algoritmi o protejează.
Folosiți -nokeys și nu îl confundați cu -nocerts
-nokeys exclude cheile private și lasă certificatele. -clcerts restrânge asta la certificatele de client, -cacerts o restrânge la certificatele CA, iar acestea două sunt filtre, nu alternative. -nocerts sună ca scrierea sigură a aceleiași idei și înseamnă opusul: fără certificate, ceea ce lasă doar chei. Să îl amesteci într-un export de certificate este felul în care o cheie privată ajunge pe disc.
Forma pe două linii care produce un fișier de certificate și un fișier CA, și nimic altceva, este:
openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pemPachetele vechi au nevoie de -legacy pe OpenSSL 3 pentru a citi criptarea lor mai veche, iar această opțiune schimbă ce acceptă parserul, nu ce emite. Dacă parsarea eșuează cu o eroare despre un algoritm neacceptat, adăugarea -legacy este prima mișcare corectă, iar omiterea verificării MAC nu este.
Verificați rezultatul, nu codul de ieșire
Un status de ieșire zero spune că comanda a rulat, nu că fișierul conține ce așteptați. Numărați certificatele din rezultat și citiți subiectul și datele: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Comparați amprenta cu cea pe care o așteaptă echipa de suport, pentru că un pachet cu două certificate de client produce un fișier cu două blocuri, iar majoritatea instrumentelor citesc doar primul. Scopul, încrederea și potrivirea cheii sunt din nou teste separate.
Un certificat care se parsează este un certificat care se parsează. Nu este un certificat pe care VPN-ul îl acceptă.
Decideți dacă aveți nevoie de fișiere
Dacă clientul care primește importă PKCS12 direct, trimiterea pachetului original printr-un canal aprobat cu parola ținută separat este mai simplă și păstrează protecția. Extragerea este pentru inspecție, pentru un client care are nevoie de PEM sau pentru un caz de suport care a cerut un artefact anume. Fiecare extragere elimină un strat și ar trebui să aibă un motiv.
Certificatele publice nu conțin cheia privată, dar conțin nume și detalii ale organizației. Partajați câmpurile cerute de tichet în locul fișierului, dacă nu cumva fișierul este cel cerut.