Fid-diskussjonijiet dwar iċ-ċertifikati jiċċirkolaw żewġ pretensjonijiet. L-ewwel waħda hija li .p12 huwa l-għażla soda u .pem dik laxka; it-tieni hija li fajl tat-test għandu jkun sigur biex jintbagħat għax tista' taqrah. L-ebda waħda ma tiflaħ minuta ta' spezzjoni.

PKCS12, PEM u DER jiddeskrivu kif l-oġġetti taċ-ċertifikat jiġu ppakkjati u kkodifikati. Huma ma jiddeċidux min hu l-ieħor, jekk il-ħarrieġ huwiex affidabbli jew jekk il-fajl jeħtieġx password.

X'jaċċetta l-klijent hija kwistjoni ta' kompatibilità. X'fih il-fajl hija kwistjoni ta' identità. Żommhom separati u l-biċċa l-kbira tal-iżbalji tal-importazzjoni jieqfu jkunu misterjużi.

Tliet kontenituri, mudell wieħed ta' oġġett

Ibda b'dak li verament għandek. Ċertifikat huwa dikjarazzjoni ffirmata dwar ċavetta pubblika. Iċ-ċavetta privata hija materjal separat li jipprova li tikkontrolla dik iċ-ċavetta. Katina hija s-sett ta' ħarrieġa li jgħaqqdu ċ-ċertifikat tiegħek ma' għerq li l-klijent jafdah. It-tlieta jeżistu irrispettivament mill-ippakkjar.

Fajl PKCS12, normalment .p12 jew .pfx, huwa kontenitur definit f'RFC 7292 li jista' jġorr ċavetta privata, ċertifikat wieħed jew aktar u l-katina fi blokka waħda protetta b'password, b'alias li jsemmi l-identità. Fajl PEM huwa qafas tat-test definit f'RFC 7468: korp base64 bejn linji BEGIN u END, u fajl wieħed jista' jżomm diversi blokki wara xulxin. DER huwa l-kodifikazzjoni binarja tal-istess strutturi ASN.1, u l-korp PEM huwa litteralment DER imdawwar b'base64.

Din l-aħħar sentenza tajba li tiftakarha. Il-konverżjoni minn PEM għal DER terġa' tikteb il-qafas, mhux il-kontenut, u l-konverżjoni lura ġġib il-bytes oriġinali.

ContainerCan holdDoes not decide
PKCS12 (.p12, .pfx)Key, leaf certificate, chain, alias, passwordWhich root the client trusts
PEM (.pem, .crt, .cer)Any number of base64 blocksWhether the private key is present
DER (.der, .cer)One binary structureThe object type, whatever the extension says

Il-kodifikazzjoni mhijiex encryption

base64 huwa alfabett tat-trasport. Ma jaħbi xejn, u kulħadd jista' jiddekodifika blokka PEM f'shell. Fajl DER huwa binarju u daqstant pubbliku. L-ebda waħda miż-żewġ proprjetajiet mhija protezzjoni, u l-ebda waħda ma timplika li teżisti password.

Il-protezzjoni vera tinsab fil-materjal taċ-ċavetta. Pakkett PKCS12 jista' jencryptja l-kontenut tiegħu taħt ċavetta derivata mill-password. Ċavetta privata PEM tista' tiġi encrypted b'blokka antika tal-intestatura jew tinżamm f'PKCS#8 EncryptedPrivateKeyInfo. Ċertifikat waħdu ma jżomm xejn sigriet, għalhekk esportazzjoni li tat biss ċertifikat tħalli lill-klijent ma jistax jawtentika, tkun xi tkun il-format li twaħħalha fih.

L-estensjoni hija ħjiel, mhix kuntratt. Fajls li jispiċċaw b'.cer u .crt jidhru fiż-żewġ kodifikazzjonijiet, u l-apparati jesportaw ċertifikati DER b'ismijiet .pem spiss biżżejjed biex il-ħjiel mis-suffiss jiswa nofs jum. Aqra l-ewwel bytes minflok: fajl PEM jiftaħ b'linja BEGIN, filwaqt li DER jibda b'0x30 għax l-istruttura ta' barra hija SEQUENCE.

Għaliex l-importazzjoni verament tfalli

Il-messaġġi tal-iżbalji tal-klijent jagħsru diversi problemi differenti f'sentenza waħda dwar ċertifikat invalidu, għalhekk ifredhom skont il-kawża. L-aktar komuni hija nuqqas ta' qbil fil-kodifikazzjoni: klijent li janalizza PEM iġib żball ta' analiżi fuq fajl DER, u s-sewwa hija konverżjoni, mhux ċertifikat ġdid. It-tieni hija ċavetta neqsin, fejn iċ-ċertifikat ikun sew u l-identità ma tistax tiġi ppruvata. It-tielet hija l-katina, fejn pakkett mingħajr iċ-ċertifikat intermedju jidher sew fid-djalogu tal-importazzjoni u jfalli waqt il-handshake.

Il-parametri tal-encryption joħolqu r-raba', u jidher eżattament bħal password ħażina. Apparati eqdem esportaw fajls PKCS12 b'RC2-40 u 3DES, li OpenSSL 3 jirrifjuta sakemm ma jkunx mgħobbi l-provider legacy. Esportazzjoni mill-ġdid mill-apparat b'AES-256-CBC u PBKDF2 hija s-sewwa dejjiema. Li tħalli ċifrari qodma mixgħula b'mod permanenti fuq magna tal-klijent għal fajl wieħed hija skambju ħażin.

Il-ħames hija ambigwità. Kontenitur li jġorr żewġ ċwievet u żewġ ċertifikati, jew fajl PEM bi tliet blokki CERTIFICATE, iġiegħel lill-klijent jagħżel, u l-għażla tiegħu spiss tkun sempliċement l-ewwel element. Meta tunnel jitla' bl-identità ħażina, normalment dik hija r-raġuni.

Spezzjona qabel tikkonverti

Aqra l-istruttura mingħajr ma tipprintja sigrieti. openssl pkcs12 -in bundle.p12 -info -noout jirrapporta l-algoritmi tal-encryption u l-alias filwaqt li jrażżan il-ħruġ taċ-ċavetta u ċ-ċertifikat, u l-manwal ta' openssl-pkcs12 jiddokumenta l-bnadar. Li tneħħi -noout u żżid -nodes huwa biex tipproduċi fajls li beħsiebek iżżomm, mhux għal ħarsa malajr, għax jikteb iċ-ċavetta privata fil-miftuħ.

Għaċ-ċertifikat, openssl x509 -in cert.pem -noout -subject -issuer -dates iwieġeb dak li d-djalogu tal-importazzjoni ma jwieġibx, u billi żżid -ext subjectAltName jidhru l-ismijiet li ċ-ċertifikat verament validu għalihom. Jekk il-fajl huwa DER, żid -inform DER; dak il-bandiera waħda ssolvi l-biċċa l-kbira tal-iżbalji unable-to-load.

Li tqabbel ċavetta ma' ċertifikat huwa mekkaniku, u jiswa li jsir qabel kull importazzjoni:

openssl x509 -in cert.pem -noout -pubkey | openssl sha256
openssl pkey -in key.pem -pubout | openssl sha256

Digesti identiċi jfissru li l-par imur flimkien. Digesti differenti jfissru li għandek iċ-ċavetta ħażina, u l-ebda konverżjoni tal-format ma tbiddel dan.

X'qatt ma jbiddel il-format

Id-deċiżjonijiet ta' fiduċja jsiru fuq il-kontenitur. Il-klijent jimxi mal-katina sa għerq fil-maħżen tiegħu, jiċċekkja l-window tal-validità, jiċċekkja l-użu estiż taċ-ċavetta għall-awtentikazzjoni tal-klijent, u fuq in-naħa tas-server jiċċekkja li l-isem li ċempel jidher fiċ-ċertifikat. L-ebda waħda minn dawn il-passi ma taqra estensjoni tal-fajl.

Għalhekk it-tibdil tal-isem ta' fajl sakemm l-iżball jisparixxi hija mod tant affidabbli biex taħli l-ħin. L-importazzjoni tirnexxi, l-identità għadha ħażina, u l-falliment jerġa' jidher waqt il-handshake fejn il-messaġġ inqas utli. Għalhekk ukoll pakkett esportat sentejn ilu jiġi importat nadif u xorta jiġi miċħud: id-data tal-iskadenza vvjaġġat ġewwa ċ-ċertifikat, mhux fl-isem tal-fajl.

Ordni li jevita xogħol mill-ġdid

Staqsi lid-dokumentazzjoni tal-klijent liema kodifikazzjonijiet jaċċetta u liema kontenitur jistenna għal identità tal-klijent, imbagħad ara x'ngħatajt. Jekk il-klijent irid identità waħda importabbli u għandek fajls PEM separati, ibni l-pakkett darba b'password li tikkontrolla u żomm is-sorsi. Jekk irid PEM, iġbed iċ-ċavetta u l-katina, imbagħad neħħi l-fajls intermedji permezz tal-proċess tal-immaniġġjar tal-kredenzjali li t-tim tiegħek diġà juża.

Wara l-importazzjoni, ivverifika l-identità mhux id-djalogu: suġġett, ħarrieġ, skadenza u l-isem li l-klijent se jippreżenta. Isem sħabi f'lista huwa tikketta, mhux identità verifikata. Jekk imbagħad it-tunnel jfalli, tkun qed tinnaviga awtentikazzjoni jew routing minflok ippakkjar, li hija konverżazzjoni ħafna iqsar.

Artikli relatati