Աջակցության հարցումը հարցնում է, թե որ վկայագիրն է գտնվում VPN փաթեթում, և առաջին ազդակը ամեն ինչ արտահանելն ու կցելն է։ P12 ֆայլը փաթեթավորում է վկայագրերն ու մասնավոր բանալու նյութը մեկ տարայի մեջ, ուստի ամեն ինչ արտահանելը հենց այն է, ինչ չպետք է ուղարկեք։ Հարցին պատասխանող հրամանը ընտրության խնդիր է, ոչ թե փոխարկման։ Չորս դրոշներ են որոշում, թե տարայի որ կեսը կստանաք, և դրանցից երկուսը ավելի ապահով են հնչում, քան կան։

Սկսեք տարան կարդալուց, այլ ոչ թե դատարկելուց։

Ինչ է իրականում պարունակում PKCS12 ֆայլը

PKCS12 տարան պարունակում է մեկ կամ ավելի վկայագրեր, հնարավոր է մասնավոր բանալի և message authentication code բովանդակության վրա։ Վկայագրերը կարող են ներառել ձեր հաճախորդի ինքնության տերևային վկայագիրը և միջանկյալ վկայագրերը, որոնք այն շղթայում են CA-ի հետ։ Բանալին, երբ առկա է, այն է, ինչ ֆայլը դարձնում է գաղտնիք, այլ ոչ թե փաստաթուղթ։

Այդ տարբերությունն է պատճառը, որ -nokeys գոյություն ունի և որ այն այն դրոշն է, որն անհրաժեշտ է այս առաջադրանքին։

Կարդացեք փաթեթը՝ առանց բանալին դուրս գրելու

Ստուգման ձևը տպում է կառուցվածքն ու ալգորիթմների մանրամասները և ոչինչ չի գրում՝ openssl pkcs12 -in client.p12 -info -noout։ Այն հարցնում է ներմուծման գաղտնաբառը, ինչը ճիշտ տեղն է այդ արժեքի համար, և ասում է՝ արդյոք ֆայլն ընդհանրապես պարունակում է բանալի։ Օգտագործեք -passin env:PKCS12_PASS, երբ գաղտնաբառը հնարավոր չէ մուտքագրել, քանի որ shell հրամանի մեջ գտնվող գաղտնաբառը գաղտնաբառ է գործընթացների ցանկում։ Այս քայլը ոչինչ չի արտահանում, և դա է ամբողջ իմաստը։

Ելքի մեջ կարդացեք երեք բան՝ քանի վկայագիր, կա՞ բանալի և որ ալգորիթմներն են պաշտպանում այն։

Օգտագործեք -nokeys և մի շփոթեք այն -nocerts-ի հետ

-nokeys-ը բացառում է մասնավոր բանալիները և թողնում վկայագրերը։ -clcerts-ը սահմանափակում է դա հաճախորդի վկայագրերով, -cacerts-ը՝ CA վկայագրերով, և այդ երկուսը զտիչներ են, ոչ թե այլընտրանքներ։ -nocerts-ը կարդացվում է որպես նույն մտքի անվտանգ գրություն և նշանակում է հակառակը՝ վկայագիր չկա, ինչը թողնում է միայն բանալիներ։ Այն վկայագրերի արտահանման մեջ խառնելը հենց այն ձևն է, որով մասնավոր բանալին հայտնվում է սկավառակի վրա։

Երկտող ձևը, որը ստեղծում է վկայագրերի ֆայլ և CA ֆայլ և ոչ այլ բան, հետևյալն է՝

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

Հին փաթեթներին OpenSSL 3-ում անհրաժեշտ է -legacy՝ իրենց ավելի հին գաղտնագրումը կարդալու համար, և այդ դրոշը փոխում է այն, ինչ ընդունում է վերլուծիչը, ոչ թե այն, ինչ այն թողարկում է։ Եթե վերլուծությունը ձախողվում է չաջակցվող ալգորիթմի սխալով, ապա -legacy-ի ավելացումը ճիշտ առաջին քայլն է, իսկ MAC ստուգումը բաց թողնելը՝ ոչ։

Ստուգեք ելքը, ոչ թե ելքի կոդը

Զրոյական ելքի կարգավիճակը ասում է, որ հրամանը կատարվել է, ոչ թե որ ֆայլը պարունակում է այն, ինչ սպասում եք։ Հաշվեք վկայագրերը ելքի մեջ և կարդացեք subject-ը և ամսաթվերը՝ openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint։ Համեմատեք մատնահետքը նրա հետ, ինչ սպասում է աջակցության թիմը, որովհետև երկու հաճախորդի վկայագիր պարունակող փաթեթը ստեղծում է երկու բլոկով ֆայլ, և գործիքների մեծ մասը կարդում է միայն առաջինը։ Նպատակը, վստահությունը և բանալու համընկնումը կրկին առանձին թեստեր են։

Վկայագիրը, որը վերլուծվում է, վկայագիր է, որը վերլուծվում է։ Դա այն վկայագիրը չէ, որը VPN-ն ընդունում է։

Որոշեք՝ արդյոք ձեզ ընդհանրապես ֆայլեր պետք են

Եթե ստացող հաճախորդը ներմուծում է PKCS12 ուղղակիորեն, ապա բնօրինակ փաթեթը հաստատված ալիքով ուղարկելը՝ գաղտնաբառը առանձին պահելով, ավելի պարզ է և պահպանում է պաշտպանությունը։ Արտահանումը նախատեսված է ստուգման, PEM-ի կարիք ունեցող հաճախորդի կամ կոնկրետ արտեֆակտ պահանջած աջակցության դեպքի համար։ Յուրաքանչյուր արտահանում հեռացնում է մեկ շերտ և պետք է պատճառ ունենա։

Հանրային վկայագրերը չեն պարունակում մասնավոր բանալին, բայց պարունակում են անուններ և կազմակերպության տվյալներ։ Կիսվեք այն դաշտերով, որոնք պահանջել է հարցումը, ոչ թե ֆայլով, եթե չի պահանջվել հենց ֆայլը։

Առնչվող հոդվածներ