"openssl verify" gives OK for bad certificate chain -


निम्न वी 3 एक्सटेंशन के साथ एक स्व-हस्ताक्षरित रूट सीए प्रमाणपत्र, रूटकेर्ट। पी है:

  X509v3 एक्सटेंशन: X509v3 कुंजी उपयोग: प्रमाणपत्र साइन X509v3 मूलभूत बाधाएं: सीए: सही   

rootcert.pem में CA फ़्लैग को सही पर सेट किया गया है & amp; इसका मुख्य उपयोग प्रमाण पत्र हस्ताक्षर करने की अनुमति देता है। रूटसीर्ट.पीएम निम्नलिखित वी 3 एक्सटेंशन के साथ एक प्रमाणपत्र foocert.pem पर संकेत करता है:

  X509v3 एक्सटेंशन: X509v3 मूलभूत बाधाएं: सीए: गलत X509v3 कुंजी उपयोग: डिजिटल हस्ताक्षर, अस्वीकार, कुंजी एनसिफरमेंट   

foocert.pem में CA फ़्लैग को झूठी और amp पर सेट किया गया; इसका मुख्य उपयोग प्रमाण पत्र हस्ताक्षर करने की अनुमति नहीं देता है। लेकिन कह सकते हैं कि फॉकार्ट पीम ने रूजसर्ट पीम्म पर हस्ताक्षर किए हैं।

फोकर्ट की एक प्रमाण पत्र श्रृंखला बनाएं; रूगुकेर्ट:

  बिल्ली foocert.pem roguecert.pem & gt; Roguechain.pem   

openssl सत्यापन का उपयोग करके सत्यापित करें। सत्यापन सफल है:

  $ openssl सत्यापित करें -सफाइल रूटकेर्ट.पीम roguechain.pem roguechain.pem: ठीक   

x509_strict के साथ सत्यापित करें, फिर भी इसका सफल:

  $ openssl verify -x509_strict-CAfile rootcert.pem badchain.pem badchain.pem: ठीक है   

चलो कहना है कि सिस्टम सिर्फ रूट सीए प्रमाण पत्र पर भरोसा करता है। एक सहकर्मी इसकी प्रमाण-पत्र श्रृंखला देता है, जहां मध्यवर्ती प्रमाण पत्र में से कोई एक सीए नहीं माना जाता है (सीए का सेट और गलत उपयोग करने के लिए प्रमाण पत्र हस्ताक्षर करने की अनुमति नहीं है), तब भी खुलने वाले एसएसएल झंडे श्रृंखला अच्छा है? < P> मैं कैसे ऐसे चेन्स पर विश्वास नहीं कर सकता openssl?

मूल उत्तर गलत साबित हुआ, इसलिए यहाँ एक और है:)

ऐसा लगता है कि openssl सत्यापित केवल प्रमाण-पत्र श्रृंखला की जांच करता है और यह कोई भी झंडे (यहां तक ​​कि सही-लागू सेट के साथ) को भी जांच नहीं करता है। जब आप वास्तव में एक एसएसएल / टीएलएस कनेक्शन करते हैं तो पुस्तकालय हालांकि झंडों की जांच करता है:

  $ openssl s_client -verify 100 -CAfile cacert.pem -connect सर्भर नाम: 443 गहराई की जांच 100 कनेक्ट (00000003 ) गहराई = 1 / सीएन = मध्य त्रुटि सत्यापित करें: num = 24: अमान्य सीए प्रमाणपत्र वापसी की पुष्टि करें: 1 गहराई = 1 / सीएन = मध्य त्रुटि सत्यापित करें: संख्या = 26: असमर्थित प्रमाणपत्र उद्देश्य वापसी की पुष्टि करें: 1 गहराई = 2 / सीएन = रूट वापसी की पुष्टि करें: 1 गहराई = 1 / सीएन = मध्य वापसी की जांच करें: 1 गहराई = 0 / सीएन = पत्तन वापसी की पुष्टि करें: 1 --- प्रमाण पत्र श्रृंखला 0 s: / CN = पत्ती I: / CN = मध्य 1 एस: / सीएन = मध्य i: / CN = रूट --- ... SSL- सत्र: प्रोटोकॉल: TLSv1 ... वापसी कोड सत्यापित करें: 26 (असमर्थित प्रमाणपत्र उद्देश्य)    

Comments

Popular posts from this blog

c - Mpirun hangs when mpi send and recieve is put in a loop -

python - Apply coupon to a customer's subscription based on non-stripe related actions on the site -

java - Unable to get JDBC connection in Spring application to MySQL -