Die sertifikate uit 'n P12 uitvoer sonder die private sleutel
'n PKCS12-bundel hou sleutels en sertifikate saam. Lees eers die struktuur en kies dan sertifikate met -nokeys in plaas van om die beskerming te verwyder.
Die ondersteuningskaartjie vra watter sertifikaat in die VPN-bundel sit, en die eerste instink is om alles uit te voer en aan te heg. 'n P12-lêer verpak sertifikate en private-sleutelmateriaal in een houer, dus om alles uit te voer is juis wat jy nie wil stuur nie. Die opdrag wat die vraag beantwoord, is 'n keuseprobleem, nie 'n omskakelingsprobleem nie. Vier vlae bepaal watter helfte van die houer jy kry, en twee daarvan klink veiliger as wat hulle is.
Begin deur die houer te lees in plaas van om dit leeg te maak.
Wat 'n PKCS12-lêer werklik bevat
'n PKCS12-houer bevat een of meer sertifikate, moontlik 'n private sleutel en 'n message authentication code oor die inhoud. Die sertifikate kan die bladsertifikaat vir jou kliëntidentiteit insluit en die tussenstappe wat dit aan 'n CA koppel. Die sleutel, wanneer dit teenwoordig is, is wat die lêer 'n geheim maak eerder as 'n dokument.
Daardie onderskeid is die rede waarom -nokeys bestaan en waarom dit die vlag is wat hierdie taak nodig het.
Lees die bundel sonder om die sleutel uit te skryf
Die inspeksievorm druk struktuur- en algoritmedetails uit en skryf niks: openssl pkcs12 -in client.p12 -info -noout. Dit vra vir die invoerwagwoord, wat die regte plek vir daardie waarde is, en dit sê vir jou of die lêer hoegenaamd 'n sleutel bevat. Gebruik -passin env:PKCS12_PASS wanneer die wagwoord nie getik kan word nie, want 'n wagwoord in 'n shell-opdrag is 'n wagwoord in die prosesselys. Hierdie stap voer niks uit, en dit is die hele punt.
Lees die uitset vir drie dinge: hoeveel sertifikate, of 'n sleutel teenwoordig is en watter algoritmes dit beskerm.
Gebruik -nokeys, en moenie dit met -nocerts verwar nie
-nokeys sluit private sleutels uit en laat die sertifikate oor. -clcerts vernou dit tot kliëntsertifikate, -cacerts vernou dit tot CA-sertifikate, en dié twee is filters eerder as alternatiewe. -nocerts lees soos die veilige spelling van dieselfde idee en beteken die teenoorgestelde: geen sertifikate nie, wat net sleutels oorlaat. Om dit by 'n sertifikaatuitvoer in te meng, is hoe 'n private sleutel op die skyf beland.
Die tweereëlvorm wat 'n sertifikaatlêer en 'n CA-lêer en niks anders lewer, is:
openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pemLegacy-bundels het -legacy nodig op OpenSSL 3 om hul ouer enkripsie te lees, en daardie vlag verander wat die ontleder aanvaar, nie wat dit lewer nie. As die ontleding misluk met 'n fout oor 'n onondersteunde algoritme, is om -legacy by te voeg die regte eerste stap en om die MAC-kontrole oor te slaan nie.
Kontroleer die uitset, nie die uittredestatus nie
'n Uittredestatus van nul sê die opdrag het geloop, nie dat die lêer bevat wat jy verwag nie. Tel die sertifikate in die uitset en lees die onderwerp en datums: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Vergelyk die vingerafdruk met dié wat die ondersteuningspan verwag, want 'n bundel met twee kliëntsertifikate lewer 'n lêer met twee blokke en die meeste gereedskap lees net die eerste. Doel, vertroue en sleutelooreenstemming is weer aparte toetse.
'n Sertifikaat wat ontleed, is 'n sertifikaat wat ontleed. Dit is nie 'n sertifikaat wat die VPN aanvaar nie.
Besluit of jy hoegenaamd lêers nodig het
As die ontvangende kliënt PKCS12 direk invoer, is dit eenvoudiger om die oorspronklike bundel deur 'n goedgekeurde kanaal te stuur met die wagwoord apart gehou, en die beskerming bly behoue. Onttrekking is vir inspeksie, vir 'n kliënt wat PEM nodig het, of vir 'n ondersteuningsgeval wat na 'n spesifieke artefak gevra het. Elke onttrekking verwyder een laag en behoort 'n rede te hê.
Openbare sertifikate bevat nie die private sleutel nie, maar hulle bevat name en organisasiedetails. Deel die velde waarvoor die kaartjie gevra het eerder as die lêer, tensy dit die lêer is wat versoek is.