2013-05-20 9 views
9

का उपयोग कर आने वाले SSL को सत्यापित करें हम खुले एसएसएल का उपयोग करके दो तरह के प्रमाणपत्र प्रमाणीकरण का उपयोग करना चाहते हैं।OpenSSL S_Server

जब हम s_server खोलने के रूप में निम्नानुसार, ग्राहक अपने सर्वर से कनेक्ट करने में सक्षम है:

openssl s_server -accept 12345 -cert our-cert.pem 

(हमारे-cert.pem हमारे प्रमाण पत्र है।)

यह ठीक काम करता है। लेकिन, मेरा आवश्यकताएँ हैं:

  1. सत्यापित करें कि इनकमिंग प्रमाणपत्र किसी विश्वसनीय सीए के साथ वैध है, और
  2. सत्यापित करें आम नाम क्या हम इसे होने की उम्मीद है।

मैं इस की कोशिश की है:

openssl s_server -accept 12345 -cert our-cert.pem -CApath /etc/ssl/certs/ 

इस ग्राहक कनेक्ट करने के लिए अनुमति देता है। लेकिन मेरे प्रश्न हैं:

  1. मैं कैसे सुनिश्चित कर सकता हूं कि यह असामान्य एसएसएल मान्य है और सीए द्वारा जारी किया गया है?
  2. मैं आम नाम को कैसे सत्यापित कर सकता हूं जो मैं उम्मीद करता हूं?

उत्तर

6

सर्वर के लिए, आपको क्लाइंट को प्रमाण पत्र प्रदान करने के लिए "-Verify" विकल्प जोड़ने की आवश्यकता है। गहराई क्लाइंट प्रमाणपत्र श्रृंखला की अधिकतम लंबाई है।

उस प्रश्न का ख्याल रखना चाहिए # 1।

# 2 के लिए, मुझे यकीन नहीं है कि इन OpenSSL आदेशों का उपयोग करके सामान्य नाम से प्रतिबंधित करने का कोई तरीका है।

आप सर्वर के लिए OpenSSL प्रलेखन देख सकते हैं/ग्राहक यहाँ आदेश:

s_server

s_client

4

परीक्षण करने के लिए सीए इस का उपयोग करें:

/usr/local/ssl/bin/openssl s_server -accept 7569 -cert /opt/GCTI/cert/host1_cert.pem -CAfile /opt/GCTI/cert/ca_cert.pem -key /opt/GCTI/cert/host1_priv_key.pem    

-cert is the public key file for this host 
-key is the private key file for this host 
-CAfile is the CA file, needed for self signed certificate 
-port is the port number to open up 

यह खुल जाएगा एक सुनो पोर्ट 7569 जो निर्दिष्ट प्रमाण पत्र के साथ टीएलएस कनेक्शन स्वीकार करेगा।

यदि सीए मान्य नहीं है तो आखिरी पंक्ति इस

Verify return code: 21 (unable to verify the first certificate) 

की तरह लग रहे इस सर्वर से कनेक्ट करने के लिए होगा, पूर्ण अंत परीक्षण (वास्तव में नहीं प्रश्न पूछा)

openssl s_client -showcerts -connect host1:7569 -CAfile /opt/GCTI/cert/ca_cert.pem 

समाप्त करने के लिए अपने वास्तविक मेजबान के साथ होस्ट 1 को प्रतिस्थापित करें। यह सत्यापित करेगा कि टीएलएस सेवा वैध है और उसी सीए द्वारा हस्ताक्षरित प्रमाण पत्र चला रही है।