Սերվերի վկայագրի նպատակը ճիշտ է թվում, բանալին համընկնում է, ամսաթվերը կարգին են, և միացումը դեռ ձախողվում է unsupported certificate purpose-ով։ Այն մանրամասնությունը, որ լուծում է սա, սովորաբար նույն տողում է, ինչ սխալը՝ խորության արժեք և subject, որոնք անվանում են շղթայում ավելի վերև գտնվող վկայագիր։ Կատարվում են երկու տարբեր փորձարկումներ, և դրանցից միայն մեկն է վերաբերում վերջնական վկայագրին։ Դրանց համեմատությունը բացատրում է, թե ինչու սերվերի վկայագիրը փոխարինելը ոչինչ չի փոխում։

Որ վկայագիրն է իրականում մերժել ստուգիչը

Շղթան երեք անգամ կրկնված մեկ օբյեկտ չէ։ Վերջնական վկայագիրը կրում է սերվերի անունն ու բանալին, միջանկյալները կապում են այն արմատի հետ, և յուրաքանչյուրն ունի իր վավերականության ժամկետը, սահմանափակումները և կիրառությունները։ Երբ սխալը նշում է խորություն, այդ թիվը նույնականացնում է դիրք շղթայում, որը կառուցել է ստուգիչը, և դա կարող է չլինել այն դիրքը, որը սպասում եք, եթե սերվերը ուղարկում է անսպասելի շղթա։

Կարդացեք այդ խորության վկայագրի դաշտերը, այլ ոչ թե այն վկայագիրը, որը մեղավոր էիք համարում։ Խնդրեք երկու ընդլայնումները, որոնք սահմանափակում են թողարկումը, փոխարենը բոլոր դաշտերը թափելու, որովհետև պատասխանը գրեթե միշտ դրանցից մեկում է։ Ընդլայնումների ելքը անվտանգ է կիսելու համար. մասնավոր բանալիները՝ երբեք։

openssl x509 -in issuing-ca.pem -noout -subject -issuer -ext basicConstraints -ext extendedKeyUsage

Եթե նշված վկայագիրը միջանկյալ է, որի ընդլայնված բանալու կիրառությունը հիշատակում է TLS սերվերի նույնականացմանը անառնչություն բան, ձախողման մնացած մասը հետևում է մեխանիկորեն։ Շղթան չի կարող օգտագործվել այն նպատակի համար, որը պահանջել է OpenVPN-ը։

Վերջնական վկայագրի նպատակը և շղթայի քաղաքականությունը երկու փորձարկում են

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

Այդ պատճառով նոր թողարկված վերջնական վկայագիրը, որը ճիշտ է յուրաքանչյուր տեսանելի դաշտում, կարող է անմիջապես ձախողվել։ Այդ պատճառով է նաև, որ ուղղումը սովորաբար պատկանում է թողարկող մարմնի պրոֆիլին, այլ ոչ VPN-ի կարգավորումներին։

Բացակայող EKU-ն սահմանափակող EKU չէ

RFC 5280-ը ընդլայնված բանալու կիրառության ընդլայնումը դարձնում է ընտրովի և, երբ այն առկա է, սահմանափակող։ Այսպիսով, առանց ընդլայնման CA վկայագիրը «ոչ» չի ասել սերվերի նույնականացմանը, մինչդեռ միայն անառնչություն նպատակ թվարկողը ասել է շատ կոնկրետ բան։ Այս երկու վիճակները համարժեք համարելը տալիս է սխալ ախտորոշում և, ավելի վատ, սխալ ուղղում։ Տարբերությունը նաև բացատրում է, թե ինչու են կոնսոլում նման թվացող երկու մարմիններ շղթայում բոլորովին այլ կերպ վարվում։

Գրադարանների վարքն այստեղ նույնպես միատեսակ չէ։ OpenSSL-ի փաստաթուղթը ստուգման ընտրանքների մասին-ը նկարագրում է CA վկայագրերի նպատակային ստուգումների իր մոտեցումը, և այդ մոտեցումը իրականացման քաղաքականություն է, ոչ թե կանոն, որին յուրաքանչյուր TLS կույտ նույնությամբ հետևում է։ Նկարագրեք, թե ինչ է անում ձեր ստուգիչը, ապա հաստատեք այն տարբերակով, որը դուք իրականում գործարկում եք։

Վերարտադրեք ձախողումը առցանցից դուրս վերստեղծելուց առաջ

Առցանցից դուրս ստուգումը հեռացնում է հավելվածը հավասարումից։ Եթե շղթան նույն կերպ ձախողվում է նույն նպատակի տակ, վկայագիրն է խնդիրը, և ոչ մի սերվերի կարգավորում չի թաքցնի այն։ Եթե շղթան առցանցից դուրս անցնում է, մինչ ծառայությունը դեռ մերժում է, հավելվածը պահանջում է այլ նպատակ կամ օգտագործում է այլ շղթա, քան ձեր փորձարկածը։

openssl verify -purpose sslserver -show_chain -CAfile root-ca.pem -untrusted issuing-ca.pem vpn-server.pem

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

Ուղղեք թողարկման քաղաքականությունը, ոչ թե ստուգման կանչը

Կայուն ուղղումը միջանկյալ վկայագիր է, որը թողարկվել է քաղաքականությամբ, որը թույլատրում է այն նպատակները, որոնց այն պետք է ծառայի, և սահմանափակումը գրված ու վերանայված է։ Յուրաքանչյուր նպատակ յուրաքանչյուր մարմնին ավելացնելը քաղաքականություն չէ. այն հեռացնում է այն սահմանափակումը, որը իմաստ տվեց ընդլայնմանը, և սովորաբար ապրում է ավելի երկար, քան այն միջադեպը, որն առաջացրեց այն։ Պրոֆիլում կարճ նշումը, որը նկարագրում է, թե որ դերերը մարմինը կարող է վկայագրել, կանխում է, որ հաջորդ վերաթողարկումը կրկնի նույն վեճը։

Ստուգումն անջատելը մյուս գայթակղիչ կարճուղին է, և այն վկայագրի խնդիրը վերածում է վստահության խնդրի։ Պահեք նպատակի ստուգումը, ուղղեք շղթան և նորից գործարկեք նույն առցանցից դուրս ստուգումը՝ հաստատելու, որ ուղին այժմ ծառայում է նախատեսված դերին, նախքան ծառայությանը նորից դիպչելը։

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