Izvezite certifikate iz P12 bez privatnog ključa
PKCS12 paket drži ključeve i certifikate zajedno. Najprije pročitajte strukturu, a zatim odaberite certifikate s -nokeys umjesto uklanjanja zaštite.
Zahtjev za podršku pita koji se certifikat nalazi u VPN paketu, a prvi je impuls izvesti sve i priložiti. Datoteka P12 pakira certifikate i materijal privatnog ključa u jedan spremnik, pa je izvoz svega upravo ono što ne biste smjeli poslati. Naredba koja odgovara na pitanje problem je odabira, a ne pretvorbe. O tome koju polovicu spremnika dobivate odlučuju četiri zastavice, a dvije od njih zvuče sigurnije nego što jesu.
Počnite čitanjem spremnika umjesto njegovim pražnjenjem.
Što datoteka PKCS12 zapravo sadrži
Spremnik PKCS12 sadrži jedan ili više certifikata, moguće privatni ključ i message authentication code nad sadržajem. Certifikati mogu uključivati završni certifikat vašeg identiteta klijenta i posredničke certifikate koji ga vežu uz CA. Ključ, kada je prisutan, ono je što datoteku čini tajnom, a ne dokumentom.
Ta je razlika razlog zašto -nokeys postoji i zašto je to zastavica koja treba ovom zadatku.
Pročitajte paket bez ispisivanja ključa
Oblik za pregled ispisuje strukturu i pojedinosti algoritama i ništa ne zapisuje: openssl pkcs12 -in client.p12 -info -noout. Pita za lozinku za uvoz, što je pravo mjesto za tu vrijednost, i govori vam sadrži li datoteka uopće ključ. Upotrijebite -passin env:PKCS12_PASS kada se lozinka ne može upisati, jer je lozinka u naredbi ljuske lozinka na popisu procesa. Ovaj korak ništa ne izvozi, i to je cijeli smisao.
U izlazu pročitajte tri stvari: koliko certifikata, je li ključ prisutan i koji ga algoritmi štite.
Upotrijebite -nokeys i nemojte ga zamijeniti s -nocerts
-nokeys isključuje privatne ključeve i ostavlja certifikate. -clcerts to sužava na certifikate klijenta, -cacerts to sužava na certifikate CA, a to su dvoje filtri, a ne alternative. -nocerts čita se kao siguran zapis iste zamisli i znači suprotno: nema certifikata, što ostavlja samo ključeve. Umiješati ga u izvoz certifikata način je na koji privatni ključ završi na disku.
Dvoredu oblika koji proizvodi datoteku certifikata i datoteku CA i ništa drugo jest:
openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pemStariji paketi trebaju -legacy na OpenSSL 3 za čitanje svojeg starijeg šifriranja, a ta zastavica mijenja što parser prihvaća, a ne što ispisuje. Ako raščlamba ne uspije s pogreškom o nepodržanom algoritmu, dodavanje -legacy ispravan je prvi potez, a preskakanje provjere MAC nije.
Provjerite izlaz, a ne izlazni kôd
Nulti izlazni status govori da se naredba izvršila, a ne da datoteka sadrži ono što očekujete. Prebrojite certifikate u izlazu i pročitajte subject i datume: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Usporedite otisak s onim koji očekuje tim za podršku, jer paket s dva certifikata klijenta stvara datoteku s dva bloka, a većina alata čita samo prvi. Svrha, povjerenje i podudaranje ključa opet su odvojeni testovi.
Certifikat koji se može raščlaniti jest certifikat koji se može raščlaniti. Nije to certifikat koji VPN prihvaća.
Odlučite trebaju li vam datoteke uopće
Ako klijent koji ga prima uvozi PKCS12 izravno, slanje izvornog paketa odobrenim kanalom uz lozinku držanu odvojeno jednostavnije je i čuva zaštitu. Izlučivanje je za pregled, za klijenta koji treba PEM ili za slučaj podrške koji je zatražio određeni artefakt. Svako izlučivanje uklanja jedan sloj i trebalo bi imati razlog.
Javni certifikati ne sadrže privatni ključ, ali sadrže imena i podatke o organizaciji. Podijelite polja koja je zahtjev tražio umjesto datoteke, osim ako je zatražena upravo datoteka.