क्या यह संभव बनाता है कि ओपनसीएल देश को छोड़ दे / आम नाम का संकेत देता है?


82

क्या प्रॉम्प्ट को इस तरह से खोलने के लिए एक तरीका है

Country Name (2 letter code) [US]:
Organization Name (eg, company) [My Company Name LTD.]:
Common Name (eg, YOUR name) [something]:

प्रमाण पत्र बनाते समय

openssl req -config openssl.cnf -new -x509 ...

तथ्य यह है कि उन मापदंडों को openssl.cnfफ़ाइल में प्रदान किया जाता है

जैसे

countryName         = Country Name (2 letter code)
countryName_default     = US
countryName_min     = 2
countryName_max     = 2
0.organizationName      = Organization Name (eg, company)
0.organizationName_default  = My Company Name LTD.
commonName          = Common Name (eg, YOUR name)
commonName_max      = 64
commonName_default      = ${ENV::CN}

3
आप कमांड लाइन पर पैरामीटर के रूप में उन चीजों को पारित कर सकते हैं। मुझे वाक्य रचना याद नहीं है।
indiv

1
धन्यवाद, वह काम करता है! -subj '/C=US/ST=Oregon/L=Portland/CN=www.madboa.com'जाने का रास्ता है
त्ज़ुरी बार योचाय

जवाबों:



35

एक अन्य समाधान में आपकी कॉन्फ़िग फ़ाइल, promptनिर्देश का उपयोग करना शामिल है। OpenSsl
देखें : कॉन्फ़िगरेशन फ़ाइल स्वरूप

prompt

यदि मान पर सेट किया जाता है, तो noयह सर्टिफिकेट फ़ील्ड्स को रोकना अक्षम करता है और बस सीधे कॉन्फ़िगरेशन फ़ाइल से मान लेता है। यह distinguished_nameऔर attributesवर्गों के अपेक्षित प्रारूप को भी बदलता है ।

distinguished nameऔर attributeवर्गों के लिए दो अलग-अलग प्रारूप हैं।

यदि शीघ्र विकल्प निर्धारित किया जाता है, noतो इन वर्गों में केवल फ़ील्ड नाम और मान शामिल होते हैं : उदाहरण के लिए,

 CN=My Name
 OU=My Organization
 emailAddress=someone@somewhere.org

यह बाहरी कार्यक्रमों (जैसे GUI आधारित) को सभी फ़ील्ड नामों और मूल्यों के साथ एक टेम्पलेट फ़ाइल उत्पन्न करने की अनुमति देता है और बस इसे पास करता है req

वैकल्पिक रूप से यदि शीघ्र विकल्प अनुपस्थित है या नहीं पर सेट नहीं है, तो फ़ाइल में फ़ील्ड प्रॉम्प्टिंग जानकारी है। इसमें फॉर्म की लाइनें शामिल हैं:

 fieldName="prompt"
 fieldName_default="default field value"
 fieldName_min= 2
 fieldName_max= 4

2
यह स्वीकृत उत्तर होना चाहिए। यदि पहले से ही एक कॉन्फिगर फाइल है, तो कोई बिंदु नहीं है / CN / O / C विकल्प फिर से कमांड है।
आदित्य विकास देवरापल्ली

1
@ AdityaVikasDevarapalli इस जवाब को लिखने के 8 साल बाद, मैं सहमत हूं। लेकिन मैं पक्षपाती हूं।
VonC

15

एक कॉन्फ़िगर फ़ाइल बनाएं और [req] अनुभाग में आप प्रॉम्प्ट = नहीं डाल सकते हैं।

उदाहरण के लिए:

[req]
prompt = no
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
C = US
ST = California
L = Los Angeles
O = Our Company Llc
#OU = Org Unit Name
CN = Our Company Llc
#emailAddress = info@example.com

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

[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com

फिर जैसे उदाहरण निष्पादित करें

openssl req -new -sha256 -config THATFILE.conf -key example.com.key -out example.com.csr

4

एक मिश्रित दृष्टिकोण समर्थित नहीं है

यह सोचना सहज हो सकता है कि एक मिश्रित दृष्टिकोण संभव है, जहां आप कुछ स्थिर क्षेत्रों को coverssl.cnf में डालने के बारे में सोच सकते हैं और कुछ (CN) -subjविकल्प के माध्यम से निर्दिष्ट कर सकते हैं । हालाँकि, यह काम नहीं करता है।

मैंने एक परिदृश्य का परीक्षण किया जहां मैं

  • C, ST, L, O और OU को Opensl.cnf सेक्शन में रखें req_distinguished_nameऔर
  • openssl reqसाथ भागे -subj=/CN=www.mydom.com

opensl ने शिकायत की कि अनिवार्य देश का नाम फ़ील्ड गायब है और उत्पन्न प्रमाणपत्र में विषय पंक्ति में केवल CN था। -subjविकल्प की तरह लगता है कि पूरी तरह से विषय रेखा को ओवरराइड करता है और किसी एक क्षेत्र को अपडेट करने की अनुमति नहीं देता है।

यह विषय क्षेत्र की आपूर्ति के तीन दृष्टिकोणों को एक दूसरे के लिए अनन्य बनाता है:

  • संकेतों
  • विन्यास फाइल
  • -subj विकल्प

इसकी पुष्टि करने के लिए धन्यवाद। इसे वास्तव में बग के रूप में चिह्नित किया जाना चाहिए। जब मैं इसे चलाता हूं, -subjतब भी इसे नजरअंदाज कर दिया जाता है -config
ओथियस

1

-batchवैकल्पिक पैरामीटर का कारण बनता है openssl reqनहीं करने के लिए आदेश जानकारी क्षेत्रों में से किसी के लिए शीघ्र। मैं इसे स्व-हस्ताक्षरित समारोहों के स्वचालन के लिए एक कॉन्फ़िगर फ़ाइल के बिना इस तरह से उपयोग करता हूं।

यह मदद में सूचीबद्ध है:

openssl help req
...
...
-batch              Do not ask anything during request generation

मुझे लगता है कि यह वास्तव में एक विन्यास फाइल के बिना नहीं है: यदि निर्दिष्ट नहीं है, तो इसे डिफ़ॉल्ट स्थान से लिया जाता है और अगर यह वहां स्थापित नहीं हुआ तो विफल हो जाता है।
माफ़-सॉफ्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.