La subtena bileto demandas, kiu atestilo troviĝas en la VPN-pakaĵo, kaj la unua instinkto estas eksporti ĉion kaj aldoni ĝin. P12-dosiero pakaĵigas atestilojn kaj privatan ŝlosilmaterialon en unu ujon, do eksporti ĉion estas ĝuste tio, kion vi ne volas sendi. La komando, kiu respondas la demandon, estas elekta problemo, ne konverta problemo. Kvar flagoj decidas, kian duonon de la ujo vi ricevos, kaj du el ili sonas pli sekuraj ol ili estas.

Komencu per legado de la ujo anstataŭ malplenigi ĝin.

Kion PKCS12-dosiero vere enhavas

PKCS12-ujo enhavas unu aŭ plurajn atestilojn, eble privatan ŝlosilon, kaj message authentication code super la enhavo. La atestiloj povas inkluzivi la folian atestilon por via klienta identeco kaj la mezajn atestilojn, kiuj ĉenigas ĝin al CA. La ŝlosilo, kiam ĝi ĉeestas, estas tio, kio faras la dosieron sekreto anstataŭ dokumento.

Tiu distingo estas la kialo, ke -nokeys ekzistas kaj ke ĝi estas la flago, kiun ĉi tiu tasko bezonas.

Legu la pakaĵon sen skribi la ŝlosilon

La inspekta formo presas strukturajn kaj algoritmoajn detalojn kaj skribas nenion: openssl pkcs12 -in client.p12 -info -noout. Ĝi petas la importan pasvorton, kio estas la ĝusta loko por tiu valoro, kaj ĝi diras al vi, ĉu la dosiero entute enhavas ŝlosilon. Uzu -passin env:PKCS12_PASS, kiam la pasvorto ne povas esti tajpita, ĉar pasvorto en shell-komando estas pasvorto en la proceza listo. Ĉi tiu paŝo eksportas nenion, kaj tio estas la tuta punkto.

Legu la eligon por tri aferoj: kiom da atestiloj, ĉu ŝlosilo ĉeestas, kaj kiuj algoritmoj protektas ĝin.

Uzu -nokeys, kaj ne konfuzu ĝin kun -nocerts

-nokeys ekskludas privatajn ŝlosilojn kaj lasas la atestilojn. -clcerts mallarĝigas tion al klientaj atestiloj, -cacerts mallarĝigas ĝin al CA-atestiloj, kaj tiuj du estas filtriloj anstataŭ alternativoj. -nocerts legiĝas kiel la sekura literumo de la sama ideo kaj signifas la malon: neniuj atestiloj, kio lasas nur ŝlosilojn. Miksi ĝin en atestilan eksporton estas kiel privata ŝlosilo finiĝas sur la disko.

La du-linia formo, kiu produktas atestilan dosieron kaj CA-dosieron, kaj nenion alian, estas:

openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pem

Legacy-pakaĵoj bezonas -legacy sur OpenSSL 3 por legi sian pli malnovan ĉifradon, kaj tiu flago ŝanĝas, kion la analizilo akceptas, ne kion ĝi eligas. Se la analizo malsukcesas kun eraro pri neapogata algoritmo, aldoni -legacy estas la ĝusta unua movo, kaj preterlasi la MAC-kontrolon ne estas.

Kontrolu la eligon, ne la eliran kodon

Elirkodo de nulo diras, ke la komando ruliĝis, ne ke la dosiero enhavas tion, kion vi atendas. Kalkulu la atestilojn en la eligo kaj legu la subjekton kaj la datojn: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Komparu la fingrospuron kun tiu, kiun la subtena teamo atendas, ĉar pakaĵo kun du klientaj atestiloj produktas dosieron kun du blokoj, kaj la plej multaj iloj legas nur la unuan. Celo, fido kaj ŝlosila kongruo estas denove apartaj testoj.

Atestilo, kiu analizeblas, estas atestilo, kiu analizeblas. Ĝi ne estas atestilo, kiun la VPN akceptas.

Decidu, ĉu vi entute bezonas dosierojn

Se la ricevanta kliento importas PKCS12 rekte, sendi la originalan pakaĵon per aprobita kanalo kun la pasvorto tenata aparte estas pli simple kaj konservas la protekton. Eltiro estas por inspektado, por kliento, kiu bezonas PEM, aŭ por subtena kazo, kiu petis specifan artefakton. Ĉiu eltiro forigas unu tavolon kaj devus havi kaŭzon.

Publikaj atestiloj ne enhavas la privatan ŝlosilon, sed ili enhavas nomojn kaj organizajn detalojn. Kunhavigu la kampojn, kiujn la bileto petis, anstataŭ la dosieron, krom se la dosiero estis tio, kio estis petita.

Rilataj artikoloj