- Obliki .cer in .crt običajno vsebujeta javna potrdila X.509 v PEM ali DER, medtem ko sta .pfx in .p12 vsebnika PKCS#12 s potrdilom, verigo in zasebnim ključem, zaščitenim z geslom.
- PEM in PKCS#7 (.p7b) uporabljata kodiranje Base64 ASCII, DER in PKCS#12 pa sta binarna; vsi predstavljajo iste kriptografske informacije z različnimi vsebniki in uporabami.
- Zasebni ključ potuje v datotekah .key ali znotraj datotek .pfx/.p12, nikoli pa v .p7b; razlikovanje, kje se ključ nahaja, je bistveno za namestitev, izvoz ali obnovo potrdil.
- OpenSSL omogoča pretvorbo med PEM, DER, PKCS#7 in PKCS#12, kar olajša prilagoditev katerega koli potrdila obliki, ki jo zahteva posamezen strežnik ali sistem.

Če ste prišli sem iskat Razlike med .pfx, .p12, .cer in .crtVerjetno ste že naleteli na več kot eno nenavadno datoteko pri nameščanju digitalnega potrdila ali SSL-ja na strežnik. Niste sami: med akronimi, končnicami in formati se je enostavno zmesti in ne vedeti, kaj posamezna datoteka počne ali katero potrebujete v posameznem primeru.
Dobra novica je, da čeprav se imena morda zdijo zastrašujoča, je vse to mogoče precej preprosto razložiti, če razumemo, da vse te datoteke niso nič drugega kot vsebniki potrdil in ključev v različnih oblikah (besedilni ali binarni) in zasnovani za različne sisteme (Windows, Linux(Java, brskalniki itd.). Mirno si jih bomo ogledali enega za drugim in jih med seboj povezali, da boste natančno vedeli, kaj je vsaka stvar, čemu služi in kako jo uporabiti ali pretvoriti, ko je to potrebno.
Kaj je digitalno potrdilo in kako se .pfx, .p12, .cer in .crt ujemajo?
Digitalno potrdilo ni nič drugega kot elektronski dokument, podpisan s strani overitelja (CA ali, v skladu z uredbo eIDAS, kvalificirani ponudnik storitev), ki povezuje identiteto z javnim ključem. Ta identiteta je lahko oseba, podjetje, spletni strežnik, domena itd.
Za dosego te povezave se uporablja naslednje: kriptografija z javnim ključem ali asimetrična kriptografijaObstaja par ključev: javni ključ (ki ga lahko pozna vsak) in zasebni ključ (ki ga mora imeti le lastnik). Kar je šifrirano z javnim ključem, je mogoče dešifrirati le z zasebnim ključem in obratno, kar omogoča preverjanje pristnosti, šifriranje in elektronske podpise.
Za vsemi temi certifikati stoji infrastruktura javnih ključev ali PKIki vključuje overitelja potrdil, registracijske organe, repozitorije potrdil, sezname preklicanih potrdil (CRL) in v mnogih okoljih tudi overitelja časovnih žigov (TSA), ki beleži, kdaj je bilo nekaj podpisano.
Notranja struktura velike večine splošnih certifikatov sledi standardu X. 509, ki ga je opredelila ITU in je podrobno opisan v RFC 5280. Ta standard opredeljuje polja, kot so različica, serijska številka, algoritem podpisa, izdajatelj, obdobje veljavnosti, subjekt, javni ključ imetnika in morebitne dodatne razširitve.
Kar zadeva algoritme, certifikati običajno uporabljajo asimetrično kriptografijo z RSA, DSA ali ECDSARSA in ECDSA služita tako za podpisovanje kot za šifriranje, medtem ko se DSA osredotoča na podpisovanje in preverjanje digitalnega podpisa.
Notranji formati in razširitve: PEM, DER, CER, CRT in podjetje
Ko govorimo o razširitvah, kot so .cer, .crt, .pem, .der, .pfx, .p12 ali .p7bV resnici mešamo dva koncepta: obliko kodiranja potrdila (besedilo Base64 ali binarno) in funkcijo, ki jo ima datoteka (samo potrdilo, potrdilo + zasebni ključ, veriga potrdil itd.).
Na ravni internega formata so potrdila X.509 predstavljena z ASN.1 in so običajno kodirani z DER (binarni) ali njegovo besedilno različico PEM (DER, pretvorjen v Base64 in ovit z glavami, kot je ZAČETEK/KONEC). Od tam naprej so bili opredeljeni različni sistemi in standardi posebne posode kot na primer PKCS#7 (.p7b) ali PKCS#12 (.pfx, .p12).
Ključ do izogibanja zmedi je, da si zapomnite, da je končnica datoteke pogosto samo ena konvencija poimenovanjaDatoteka .cer ali datoteka .crt lahko vsebuje popolnoma isto stvar, le da se ena bolj uporablja v okoljih Windows, druga pa v okoljih Unix/Linux, če navedemo primer.
Znotraj te splošne skupine je nekaj ključne oblike Pomembno jih je jasno razumeti, saj so to tisti, s katerimi se boste ves čas srečevali pri delu s SSL/TLS ali osebnimi potrdili.
Format PEM: »berljivo besedilo« potrdil
Format PEM je daleč najpogostejši za potrdila SSL/TLS na strežnikih, kot sta Apache ali Nginx, in v večini varnostnih orodij. Datoteka PEM je preprosto DER, prekodiran v Base64 in obdan z besedilnimi glavamikar vam omogoča, da ga odprete in kopirate s katerim koli urejevalnikom (Notepad, nano, vim itd.).
PEM je prepoznan, ker je njegova vsebina omejena s črtami, kot je —–ZAČNITE POTRDILO—– y —–KONEC POTRDILA—– če vsebuje potrdilo ali —–ZAČNI ZASEBNI KLJUČ—– y —–KONEC ZASEBNEGA KLJUČA—– ko vsebuje zasebni ključ. Vse vmes je niz Base64, ki predstavlja izvirne binarne podatke.
V eni sami datoteki PEM lahko imate samo potrdiloPotrdilo in vmesna veriga CA, zasebni ključ posebej ali celo celoten paket (zasebni ključ, strežniško potrdilo, vmesna potrdila in korensko potrdilo). Zahteve za podpis potrdil so na voljo tudi v PEM. Družbena odgovornost podjetijki niso nič drugega kot strukture PKCS#10, prekodirane v besedilo.
Ta oblika je bila prvotno opredeljena v dokumentih RFC 1421–1424 kot del projekta elektronske pošte z izboljšano zasebnostjo, ki se ni prijel za elektronsko pošto, je pa za seboj pustil odlično besedilno obliko. prenos kriptografskih podatkov v udobni, berljivi in enostavni obliki za kopiranje/lepljenje.
V praksi datoteke s končnicami .pem, .crt, .cer ali .key V sistemih Unix/Linux so to običajno datoteke PEM. Običajno .key vsebuje zasebni ključ, .crt ali .cer vsebuje strežniško potrdilo, včasih pa dodatna datoteka PEM vključuje vmesno verigo CA.
Format DER: čisti in preprost binarni zapis
DER (Distinguished Encoding Rules) je binarna oblika kodiranja strukture ASN.1, ki opisujejo potrdilo X.509. Ne gre za besedilo, zato boste, če ga odprete z urejevalnikom, namesto tipičnega niza Base64 videli čudne znake.
Datoteka DER lahko vsebuje katera koli vrsta potrdila ali zasebnega ključaObičajno jo prepoznamo po končnici .der ali .cer, zlasti v okoljih Windows ali na platformah Java. V sistemu Windows se datoteka .der neposredno prepozna kot datoteka s potrdilom in se ob dvojnem kliku odpre z izvornim pregledovalnikom.
Praktična razlika pri PEM je v tem, da je PEM mogoče enostavno kopirati in poslati po e-pošti ali prilepiti v spletne obrazce, medtem ko je DER zaprta binarna pika Zasnovan za neposredno uporabo v aplikacijah. Vendar pa so informacije znotraj sistema enake: PEM ni nič drugega kot DER, ponovno kodiran v besedilo Base64.
Orodja, kot je OpenSSL, omogočajo preklapljanje med DER in PEM in obratno z enim samim ukazom, ne da bi pri tem spremenili logično vsebino potrdila, temveč le njegovo obliko predstavitve.
Končnici .cer in .crt: isti pes z drugačno ovratnico
Končnici .cer in .crt se uporabljata za označevanje datoteke, ki vsebujejo javna potrdila, običajno v formatu PEM ali DER, odvisno od sistema, v katerem so ustvarjeni ali nameščeni.
V nekaterih primerih bo datoteka .crt na strežniku Apache certificirano v PEM obdana z glavama BEGIN/END CERTIFICATE in pripravljena za lepljenje v konfiguracijski blok. V sistemu Windows je datoteka .cer lahko PEM ali DER, čeprav običajno spada v katero koli od kategorij, odvisno od orodja, ki jo je ustvarilo.
Pomembno je razumeti, da končnica ne določa strogo notranje oblike: datoteka .cer je lahko besedilo PEM ali binarna datoteka DER, pregledovalnik ali pripomoček, kot je OpenSSL, pa bo določil, kako jo prebrati. V brskalnikih in sistemih Windows se z dvojnim klikom odpre ... pregledovalnik potrdilkjer si lahko ogledate izdajatelja, zadevo, datume veljavnosti, uporabo ključa itd.
Ko izvozite potrdilo brez zasebnega ključa iz brskalnika ali shrambe potrdil sistema Windows, boste običajno dobili datoteko .cer, ki se uporablja za preverjanje podpisov, verig zaupanja ali šifriranje informacijvendar nikoli ne podpišite v imenu lastnika (za to potrebujete zasebni ključ, ki je ločen ali znotraj zaščitenega vsebnika).
CSR, KEY, CA in vmesne datoteke: druge datoteke, ki spremljajo potrdilo
Ko obdelujete SSL-certifikat ali osebni certifikat, ne boste videli le datotek .pfx, .p12 ali .cer. Celoten postopek vključuje tudi datoteke, kot so Potrdila .csr, .key ali CA (koren in vmesni produkti), ki so enako pomembni za delovanje vsega.
Zahteva za podpis oz. CSR (.csr) To je datoteka, ki jo običajno ustvarite na strežniku, kjer bo nameščeno potrdilo SSL. Vsebuje javni ključ, ime domene, organizacijo, državo in druge podatke, ki jih bo overitelj potrdil uporabil za izdajo potrdila. Sledi standardu PKCS#10 in je običajno kodirana v PEM, tako da jo lahko kopirate in prilepite v obrazec ponudnika.
Zasebni ključ oz. KLJUČ (.ključ) To je datoteka, v kateri je shranjen tajni ključ, povezan s potrdilom. Običajno je v formatu PEM, ločenem z BEGIN PRIVATE KEY in END PRIVATE KEY. Gre za izjemno občutljivo datoteko, ki je ne smete deliti ali nalagati v javna skladišča, v mnogih primerih pa je dodatno zaščitena z geslom.
Datoteka CA ali potrdilo o pooblastilu Vsebuje javni ključ entitete, ki izda ali posreduje potrdilo. Brskalniki in OS Priložen je privzeti seznam zaupanja vrednih overiteljev potrdil, včasih pa morate namestiti vmesna potrdila, da dokončate verigo zaupanja, da lahko odjemalci brez napak preverijo potrdilo vašega strežnika.
Ta vmesna potrdila so lahko dobavljena kot datoteke PEM (.pem, .crt, .cer) ali znotraj vsebnika, kot je .p7bV konfiguracijah gostovanja se zelo pogosto zgodi, da se od vas zahtevajo datoteke CRT (domensko potrdilo), KEY (zasebni ključ) in CA ali vmesno potrdilo za pravilno namestitev SSL-ja.
PKCS#7 / P7B: veriga potrdil brez zasebnega ključa
PKCS#7, običajno predstavljen z razširitvami .p7b ali .p7cGre za format, zasnovan za združevanje enega ali več potrdil v strukturiran vsebnik, brez vključitve zasebnega ključa. Običajno se uporablja za distribuirati verige potrdil (strežniško potrdilo in vmesna potrdila) v okoljih Windows ali Java (Tomcat, shramba ključev itd.).
Datoteka .p7b je običajno kodirana v Base64 ASCII, podobno kot datoteka PEM, in je bila prvotno definirana v RFC 2315 kot del standardov kriptografije z javnim ključem. Danes je njen naslednik CMS (Cryptographic Message Syntax), vendar se ime PKCS#7 še vedno pogosto uporablja v svetu SSL certifikatov.
Ta oblika je zelo uporabna, ko potrebujete vzpostaviti celotno verigo zaupanja na strežniku ali v sistemu, ki upravlja potrdila prek shrambe (na primer shrambe ključev Java). Običajno ponudnik SSL dostavi potrdilo strežnika na eni strani in datoteko .p7b s celotno verigo CA na drugi strani ali eno samo datoteko .p7b, ki vsebuje vse.
Če želite pretvoriti datoteko .p7b v PEM, vam orodja, kot je OpenSSL, omogočajo, da z enim samim ukazom izvlečete potrdila in jih shranite v eno ali več besedilnih datotek. Nato lahko ločite bloke BEGIN/END CERTIFICATE, če jih morate ločeno naložiti na strežnik.
Pomembno je omeniti, da datoteka PKCS#7 nikoli ne vsebuje zasebnega ključaZato sam po sebi ni uporaben za podpisovanje ali dešifriranje: zagotavlja le javni del verige potrdil za potrditev zaupanja.
PKCS#12: Kaj točno sta .pfx in .p12?
Standard PKCS#12 definira z geslom zaščiten binarni vsebnik, ki lahko vključuje javna potrdila, celotne verige CA in zasebni ključ povezano. Najpogostejši končnici za to obliko sta .pfx in .p12, ki sta praktično enakovredni.
Zgodovinsko gledano se je PKCS#12 začel kot format, tesno povezan z Microsoftom, vendar z čas Standardiziran je bil v RFC 7292 in se danes uporablja v vseh vrstah sistemov, prav zato, ker omogoča varno prenesite par potrdila in zasebnega ključa iz ene ekipe v drugo.
V sistemu Windows čarovnik pri izvozu potrdila »zasebnega ključa« iz shrambe potrdil uporabnika ali računalnika ustvari datoteko .pfx (ali .p12), ki vključuje vse, kar potrebujete za uvoz v drug sistem: zasebni ključ, imetnika potrdila in običajno vmesno verigo.
Med ustvarjanjem ali izvozom datoteke PKCS#12 vas bo sistem pozval, da določite zaščita z geslomTo geslo bo kasneje potrebno za uvoz datoteke v drug brskalnik, IIS, e-poštni odjemalec ali celo drug operacijski sistem. Na ta način, če nekdo ukrade datoteko .pfx, je ne bo mogel uporabljati brez poznavanja tega gesla.
Orodja, kot je OpenSSL, omogočajo pretvorbo datoteke .pfx ali .p12 v PEM, tako da dobite besedilno datoteko, v kateri lahko preprosto poiščete blok zasebnega ključa, strežniško potrdilo in vmesna potrdila ter jih po potrebi kopirate (na primer v nadzorni plošči gostovanja, ki ločeno sprejema samo CRT, KEY in CA).
Podaljšanje, izvoz in uvoz potrdil .pfx in .p12
Na področju osebnih potrdil (na primer tistih, ki jih izda FNMT ali drugi organi za namene identifikacije) je način njihovega varnostnega kopiranja in podaljšanja tesno povezan z uporabo Datoteke .pfx ali .p12, ki potujejo na kriptografskih karticah, žetonih USB ali neposredno kot zaščitene datoteke v računalniku.
Če vaše osebno potrdilo še ni poteklo, številni organi dovoljujejo Podaljšajte na spletuPodaljšanje je omogočeno na registracijski točki (poklicno združenje, podjetje, ponudnik storitev certificiranja itd.) in po e-pošti prejmete povezavo za dokončanje postopka iz svojega računalnika.
Če pa je potrdilo že poteklo, boste običajno morali osebno se udeležiti S kriptografsko kartico ali napravo, kjer je shranjeno potečeno potrdilo, pojdite na isto registracijsko točko, se identificirajte in zahtevajte novo izdajo, ki jo lahko ponovno izvozite v formatu .pfx ali .p12 in uvozite, kamor koli jo potrebujete.
V brskalnikih, kot so Rob ali ChromePostopek uvoza poteka skozi Shramba potrdil sistema WindowsV nastavitvah zasebnosti in varnosti lahko odprete upravitelja potrdil, izberete zavihek Osebno in uvozite datoteko .pfx ali .p12. Čarovnik bo zahteval geslo vsebnika in ponudil, da ključ označite kot izvozljiv za prihodnje varnostne kopije.
Če namesto datoteke .pfx imate datoteko .cer brez zasebnega ključa (ikona potrdila brez ključa), je ta datoteka uporabna le za namestite javno potrdilo (prikaže se pod »Druge osebe«), vendar ne za podpisovanje ali overjanje. V tem primeru zasebnega ključa ne boste mogli pridobiti od tam in če nimate druge veljavne kopije, bo edina možnost zahtevati novo potrdilo.
Kako se te oblike uporabljajo v strežniških SSL-certifikatih
Pri vsakodnevnem delu s spletnimi strežniki, VPNNe glede na to, ali uporabljate posredniške strežnike ali aplikacije Java, so različne oblike potrdil odvisne od sistema in vrste namestitve. Nastavitev Apacheja v Linuxu ni enaka nastavitvi IIS v sistemu Windows ali Tomcata v Javi.
V okoljih Unix/Linux (Apache, Nginx, HAProxy itd.) je normalno delati z PEM datoteke ločene datoteke: ena za zasebni ključ (.key), druga za strežniško potrdilo (.crt ali .cer) in včasih še ena z vmesnim nizom CA. Na vse te se sklicuje konfiguracija strežnika za vzpostavitev TLS.
Na platformah Windows (IIS, storitve oddaljenega namizja itd.) je zelo pogosto, da se od vas zahteva .pfx ali .p12 ki vsebuje tako potrdilo kot zasebni ključ in verigo. Čarovnik za uvoz poskrbi za namestitev vsakega dela v ustrezno shrambo, tako da vam ni treba skrbeti za notranje podrobnosti.
V okoljih Java (Tomcat, aplikacije z lastno shrambo ključev) shrambe tipa JKS ali PKCS#12V mnogih primerih se datoteka .pfx uvozi neposredno ali pa se za konfiguracijo verige zaupanja znotraj shrambe ključev uporabijo potrdila .p7b, odvisno od orodja in različice Jave.
Ko kupite SSL-potrdilo od zunanjega ponudnika, lahko prejmete različne kombinacije datotek: datoteko CRT + CA v formatu PEM, datoteko .p7b, ki vsebuje niz, ali celo vnaprej pripravljeno datoteko .pfx. Ključno je, da prepoznate pravilno vrsto datoteke. Kje je zasebni ključ? (če je priloženo in ga ni ustvaril strežnik) in katera datoteka vsebuje strežniško potrdilo in vmesno verigo.
V nadzornih ploščah za gostovanje boste običajno morali izpolniti polja za CRT, KEY in po izbiri še potrdilo CA ali vmesno potrdilo. Če imate samo datoteko .pfx, jo lahko pretvorite v PEM z uporabo OpenSSL in izvlečete vsak blok od tam, pri čemer previdno kopirate od ZAČETKA do KONCA vsake vrste.
Pretvorba med formati potrdil z OpenSSL
Ko enkrat razumete, kaj je vsaka datoteka, je naslednji logičen korak vedeti kako jih pretvoriti Ko strežnik ali aplikacija zahteva obliko zapisa, ki se razlikuje od tiste, ki jo zagotavlja vaš ponudnik internetnih storitev ali CA, je standardno orodje za to OpenSSL, ki je na voljo v večini distribucij Linuxa in ga je mogoče namestiti tudi v sistem Windows.
Na primer, če imate potrdilo v DER (.der, .cer) In če ga morate pretvoriti v PEM, bi zadostoval en sam ukaz, ki vzame to binarno datoteko in jo ponovno kodira v Base64 z ustreznimi glavami. Podobno lahko PEM pretvorite v DER, če vaš sistem sprejema samo binarne datoteke.
Z datoteko PKCS#7 (.p7b) lahko uporabite OpenSSL za izvleči potrdila v formatu PEM s preprostim ukazom, ki natisne vsebovana potrdila in jih shrani v besedilno datoteko. Od tam ločite različne bloke BEGIN/END CERTIFICATE, če potrebujete posamezne datoteke.
V primeru PKCS#12 (.pfx, .p12) vam OpenSSL omogoča pretvorbo vsebnika v datoteko PEM, ki vsebuje zasebni ključ in vsa potrdila. Med postopkom boste pozvani k vnosu gesla vsebnika in lahko izberete, ali želite zasebni ključ pustiti šifriran ali v navadnem besedilu znotraj datoteke PEM, odvisno od njegove predvidene uporabe.
Te vrste pretvorb omogočajo scenarije, kot je nalaganje datoteke .pfx na strežnik Linux, njena pretvorba v PEM in nato ločena CRT in KEY izpolniti obrazec za namestitev SSL-ja, ki neposredno ne podpira vsebnikov PKCS#12.
Poleg neposrednih pretvorb DER↔PEM, PEM↔PKCS#7, PKCS#7↔PKCS#12 in PKCS#12↔PEM lahko isto orodje ustvari zahteve CSR, upravlja ključe, pregleduje potrdila in preverja datume poteka veljavnosti, zaradi česar je osnovno orodje v katerem koli okolju, ki deluje s potrdili.
Vrste digitalnih potrdil in področja uporabe
Poleg formata datoteke je koristno tudi jasno opredeliti vrste potrdil odvisno od njihove uporabe ali vrste entitete, ki jo predstavljajo, saj to vpliva na upravljanje njihovih varnostnih kopij, obnovitev in namestitev.
Na evropski regulativni ravni (uredba eIDAS) se razlikuje med "Preprosta" elektronska potrdila in kvalificirana potrdilaPrve izpolnjujejo osnovne zahteve za identifikacijo in izdajo, druge pa od ponudnika zahtevajo strožje postopke preverjanja identitete ter strožje tehnične in organizacijske pogoje. Jasen primer v Španiji bi bila elektronska osebna izkaznica (DNIe).
Če pogledamo, kdo je imetnik, lahko imamo potrdila o fizična oseba, pravna oseba ali subjekt brez pravne osebnostiVsak od njih se uporablja za podpisovanje ali overjanje na različnih področjih: osebni postopki, posli v imenu podjetja oziroma davčne obveznosti.
V svetu spletnih strežnikov je najbolj znana družina certifikatov tista za SSL/TLS certifikatiTa potrdila so nameščena na strežnikih za šifriranje komunikacijskega kanala z uporabniki. Vključujejo različice, kot so potrdila za eno domeno, nadomestna potrdila in potrdila za več domen (SAN), ki se razlikujejo po številu imen, ki jih pokrivajo, in ravni validacije.
Ne glede na vrsto se lahko vsa ta potrdila shranijo in distribuirajo v enakih oblikah: datoteke .cer, .crt, .pem, .p7b ali vsebniki .pfx/.p12, odvisno od sistema, v katerem se bodo uporabljala, in izbrane metode za njihov prenos ali varnostno kopiranje.
Uporabnost digitalnih potrdil je ogromna: Zagotavljajo zaupnost in avtentičnost komunikacij omogočajo pravno veljavne elektronske podpise, poenostavljajo upravne in komercialne postopke ter omogočajo varno delovanje več omrežnih storitev, ne da bi se uporabnik moral obremenjevati s kriptografskimi podrobnostmi.
Na tej točki je jasno, da so razširitve, kot so .pfx, .p12, .cer ali .crt, preprosto različni načini pakiranja iste stvari: potrdila X.509, zasebnega ključa in, kjer je to primerno, verige zaupanja, ki so, odvisno od okolja, predstavljene kot besedilni vsebniki Base64, binarne datoteke DER ali vsebniki PKCS za lažjo namestitev in uvajanje. transport med sistemi.
Strasten pisec o svetu bajtov in tehnologije nasploh. Rad delim svoje znanje s pisanjem in to je tisto, kar bom počel v tem blogu, saj vam bom pokazal vse najbolj zanimive stvari o pripomočkih, programski opremi, strojni opremi, tehnoloških trendih in še več. Moj cilj je, da vam pomagam krmariti po digitalnem svetu na preprost in zabaven način.
