2012-11-08 23 views
7

JKJSopenssl प्रमाण पत्र सत्यापन

मैं प्रमाण पत्र की इस श्रृंखला है: rcert.pem (स्व-हस्ताक्षरित) -> scert.pem -> ccert.pem

तीनों प्रमाण पत्र हैं मेरे द्वारा उत्पन्न कोई भी इंटरनेट कनेक्शन कहीं भी उपयोग नहीं किया जाता है। यह एकदम सही ऑफ़लाइन काम है। ? भरोसा या अविश्वसनीय तरह

[email protected]:~/hari$ openssl verify rcert.pem 
rcert.pem: C = IN, ST = OM, L = OM, O = HARI, OU = HARI, CN = OM, emailAddress = OM 
error 18 at 0 depth lookup:self signed certificate 
OK 
[email protected]:~/hari$ openssl verify -CAfile rcert.pem scert.pem 
scert.pem: OK 
[email protected]:~/hari$ openssl verify -CAfile rcert.pem rcert.pem 
rcert.pem: OK 
[email protected]:~/hari$ openssl verify -CAfile rcert.pem -untrusted scert.pem ccert.pem 
ccert.pem: C = IN, ST = HARI, L = HARI, O = HARI, OU = HARI, CN = HARI, emailAddress = HARI 
error 24 at 1 depth lookup:invalid CA certificate 
OK 

यह क्यों दूर करने के लिए त्रुटि 24 created.How है यह कुछ है: अब नीचे दिए गए कुछ आदेश और उनके उत्पादन कर रहे हैं?

धन्यवाद।

उत्तर

17

JKJS

मेरे अपने प्रश्न का

गॉट जवाब:

1) बनाया गया इन आदेशों से जड़ CA प्रमाणपत्र:

openssl req -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.pem 

openssl x509 -req -in rootreq.pem -sha1 -signkey rootkey.pem -out rootcert.pem 

2) स्थापित सीए विश्वसनीय प्रमाणपत्र के रूप में निम्न कमांड द्वारा प्रमाण पत्र:

sudo mkdir /usr/share/ca-certificates/extra 

sudo cp rootcert.pem /usr/share/ca-certificates/extra/rootcert.crt 

sudo dpkg-reconfigure ca-certificates 

sudo update-ca-certificates 

3) रूट द्वारा हस्ताक्षरित मध्यवर्ती प्रमाण पत्र बनाया गया निम्न कमांड द्वारा सीए:

openssl req -newkey rsa:1024 -sha1 -keyout skey.pem -out sreq.pem 

sudo openssl x509 -req -in sreq.pem -sha1 -CA /etc/ssl/certs/rootcert.pem -CAkey rootkey.pem -CAcreateserial -out scert.pem 

4) बनाया गया क्लाइंट प्रमाणपत्र निम्न कमांड द्वारा इंटरमीडिएट CA द्वारा हस्ताक्षर किए गए:

openssl req -newkey rsa:1024 -sha1 -keyout ckey.pem -out creq.pem 

openssl x509 -req -in creq.pem -sha1 -CA scert.pem -CAkey skey.pem -CAcreateserial -out ccert.pem 

अब, विश्वास की चेन ठीक काम कर रहा है:

1) जड़ का सत्यापन सीए

openssl verify rootcert.pem 
rootcert.pem: OK 

2) इंटरमीडिएट CA

+०१२३५१६४१०६ का सत्यापन
openssl verify scert.pem 
scert.pem: OK 

3) क्लाइंट प्रमाणपत्र

openssl verify -CAfile scert.pem ccert.pem 
ccert.pem: OK 
+1

के सत्यापन खैर समाधान ढूँढने पर किया। एक अच्छा और पूर्ण मिनी ट्यूटोरियल। अब इसे ढूंढने वालों के लिए छोटी टिप्पणी, इसे 2048 बाइट्स और sha256 में बदलें क्योंकि ये इन दिनों अधिक आम हैं। – YorickH

+2

चेतावनी, उपरोक्त प्रमाणपत्र श्रृंखला सत्यापन आदेश अधिक अनुमोदित हैं जो आप उम्मीद कर सकते हैं! डिफ़ॉल्ट रूप से, दिए गए CAFile को जांचने के अतिरिक्त, वे सिस्टम के certs निर्देशिका में किसी मिलान करने वाले CA की भी जांच करते हैं उदा।/Etc/ssl/प्रमाणपत्र। इस व्यवहार को रोकने के लिए और सुनिश्चित करें कि आप अपने विशेष सीए प्रमाण के खिलाफ जांच कर रहे हैं, एक गैर-मौजूद निर्देशिका के साथ -CApath विकल्प भी पास करें, उदाहरण के लिए: "openssl verify -CApath nosuchdir -CAfile scert.pem ccert.pem" – DSimon

+0

यह है बहुत अच्छा, लिनक्स पर काम करता है। लेकिन मैं मैक पर रूट प्रमाण कैसे स्थापित करूं ?? – prayagupd

संबंधित मुद्दे