2011-05-31 10 views
15

मैं स्वयं हस्ताक्षरित प्रमाणपत्र उत्पन्न करने के लिए ओपनएसएसएल कमांड लाइन टूल का उपयोग कर रहा हूं। ऐसा लगता है कि दो मुद्दों को छोड़कर सही तरीके से काम कर रहा है। मैं इसे विषय वैकल्पिक नाम (आलोचनात्मक) के साथ .cer बनाने के लिए नहीं प्राप्त कर सकता हूं और मैं यह समझने में सक्षम नहीं हूं कि संस्करण 3 का प्रमाण कैसे बनाया जाए (सुनिश्चित नहीं है कि यह अभी तक महत्वपूर्ण है लेकिन सीखना पसंद करेंगे संस्करण कैसे सेट करें)।ओपनएसएसएल संस्करण वी 3 विषय वैकल्पिक नाम

क्या किसी ने इसे सफलतापूर्वक किया है?

: डिफ़ॉल्ट config (.cfg) फ़ाइल प्रतीत होता है स्पष्ट प्रलेखन (नीचे देखा जाता है) है "यह सामान subjectAltName और issuerAltname के लिए है आयात ईमेल पता subjectAltName = ईमेल:।। प्रतिलिपि"

हालांकि यह करता है काम नहीं। मेरा मुद्दा यह है कि विषय वैकल्पिक नाम बी/सी नहीं दिखा रहा है, यह वी 1 चश्मे में मौजूद नहीं है, इसलिए मैं भी संस्करण स्थापित करने का प्रयास कर रहा हूं।

[ req ] 
default_bits  = 2048 
default_keyfile  = privkey.pem 
distinguished_name = req_distinguished_name 
emailAddress  = myE[email protected] 
req_extensions   = v3_req 
x509_extensions   = v3_ca 

[req_distinguished_name] 
C = [Press Enter to Continue] 
C_default = US 
C_min = 2 
C_max = 2 

O = [Press Enter to Continue] 
O_default = default 

0.OU=[Press Enter to Continue] 
0.OU_default = default 
1.OU=[Press Enter to Continue] 
1.OU_default = PKI 
2.OU=[Press Enter to Continue] 
2.OU_default = ABCD 
commonName = Public FQDN of server 
commonName_max = 64 

[ v3_req ] 
basicConstraints = CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment 

[ v3_ca ] 
subjectKeyIdentifier = hash 
authorityKeyIdentifier = keyid:always,issuer:always 
subjectAltName   = email:[email protected] 
issuerAltName   = issuer:copy 
+0

सोचा कि यह कॉन्फ़िगरेशन फ़ाइल पोस्ट करने में मदद कर सकता है जिसके साथ मैं काम कर रहा हूं: – Kandres22

उत्तर

7

मैं इसे निम्नलिखित संस्करण के साथ काम करने के लिए मिल गया (EmailAddress गलत तरीके से रखा गया था):

[ req ] 
default_bits  = 2048 
default_keyfile  = privkey.pem 
distinguished_name = req_distinguished_name 
req_extensions   = v3_req 
x509_extensions   = v3_ca 

[req_distinguished_name] 
C = [Press Enter to Continue] 
C_default = US 
C_min = 2 
C_max = 2 

O = [Press Enter to Continue] 
O_default = default 

0.OU=[Press Enter to Continue] 
0.OU_default = default 
1.OU=[Press Enter to Continue] 
1.OU_default = PKI 
2.OU=[Press Enter to Continue] 
2.OU_default = ABCD 
commonName = Public FQDN of server 
commonName_max = 64 
emailAddress = [Press Enter to Continue] 
emailAddress_default = [email protected] 

[ v3_req ] 
basicConstraints = CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment 

[ v3_ca ] 
subjectKeyIdentifier = hash 
authorityKeyIdentifier = keyid:always,issuer:always 
subjectAltName   = email:[email protected] 
issuerAltName   = issuer:copy 

नोट्स:

    यहाँ मैं उपयोग कर रहा हूँ कॉन्फ़िग फ़ाइल है

  • प्रमाण पत्र जेनरेट करने के लिए मैंने उपयोग किया:

    openssl req -config req.cnf -new -nodes -out req.pem -x509 
    
  • मैंने issuerAltname के लिए अधिक उपयोग नहीं देखा है (यदि आपको पता है कि मुझे कहां दिलचस्पी होगी)।
  • का उपयोग authorityKeyIdentifier के लिए अनुशंसित नहीं है।
  • email:copy का उपयोग अब subjectAltName के साथ काम करता है।
  • v3_req अनुभाग ज़रूरत से ज़्यादा (और साथ req_extensions के रूप में लाइन।
2

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

शायद तुम डाल नहीं कर रहे हैं

subjectAltName = ईमेल: अनुभाग में प्रतिलिपि

[v3_req]

शायद तुम openssl X509 उपयोग कर रहे हैं प्रमाण पत्र उत्पन्न करने के लिए, यदि ऐसा है तो आप

-extfile/etc/PKI/TLS/openssl उपयोग करना चाहिए।cnf

क्योंकि बिना कि यह आपके कॉन्फ़िग फ़ाइल का उपयोग नहीं करता है

तुम भी आवश्यकता हो सकती है

-extensions v3_req

कमांड लाइन स्विच

7

यहाँ आप के लिए

सरल कदम है

सीएसआर उत्पन्न करते समय आपको -config और -extensions का उपयोग करना चाहिए और प्रमाणित उत्पन्न करते समय खाया आप -extfile का उपयोग करना चाहिए और -extensions

यहाँ उदाहरण

openssl req -new -nodes -keyout test.key -out test.csr -days 3650 -subj "/C=US/ST=SCA/L=SCA/O=Oracle/OU=Java/CN=test cert" -config /etc/pki/tls/openssl.cnf -extensions v3_req 
openssl x509 -req -days 3650 -in test.csr -CA cacert.pem -CAkey rootCA.key -CAcreateserial -out test.pem -extfile /etc/pki/tls/openssl.cnf -extensions v3_req 

आशा है कि यह मदद करता है

0

v3_req कॉन्फ़िगरेशन फ़ाइल में subjectAltName प्रविष्टि के साथ आवश्यक है। आदेश

openssl x509 ... -extfile openssl.cnf -extensions v3_req 

SAN को प्रमाणपत्र में सम्मिलित करेगा।

0

मुझे पता है कि यह धागा थोड़ा पुराना है, लेकिन अगर यह विंडोज़ पर किसी के लिए काम करता है, तो जांचें कि फाइल यूटीएफ -8 एन्कोडेड है, मेरे मामले में मुझे एक त्रुटि मिल रही थी जिसमें संकेत मिलता था कि .cnf फ़ाइल, इसलिए मैंने इसे नोटपैड ++ पर खोला, फ़ाइल एन्कोडिंग को यूटीएफ -8 पर सेट किया, सहेजा, और openssl कमांड फिर से चलाया और यह चाल बनाई।

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