2015-06-22 18 views
7

में मौजूद नहीं मैं एक सीएसआर क्षेत्र विषय ऑल्ट नाम होते हैं पैदा किया:विषय वैकल्पिक नाम प्रमाण पत्र

openssl req -out mycsr.pem -new -key mykey.pem -days 365 

जब मैं इस यह एक नया क्षेत्र वर्तमान के साथ की उम्मीद के रूप में लग रहा है का निरीक्षण:

X509v3 Subject Alternative Name: 
    DNS: my.alt.dns 

हालांकि जब मैं किसी प्रमाण पत्र पर हस्ताक्षर करने के लिए इसका उपयोग करता हूं तो किसी कारण से फ़ील्ड छोड़ा जाता है।

मैं निम्न आदेश के साथ उत्पन्न:

openssl ca -out mycert.pem -infiles mycsr.pem 

यह हो सकता है कि मेरी CA प्रमाणपत्र एक ही ऑल्ट नाम शामिल करने के लिए यह शामिल होने के लिए के लिए है?

+0

स्टैक ओवरफ़्लो प्रोग्रामिंग और विकास प्रश्नों के लिए एक साइट है:

जैसा कि मैंने हमेशा पूरी तरह से सुबोध उदाहरण, एक हर कदम जहां पुन: पेश कर सकता सराहना करते हैं, मैं एक उदाहरण परियोजना स्प्रिंग बूट microservices की विशेषता बनाया। यह प्रश्न ऑफ़-विषय प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। सहायता केंद्र में [मैं यहां कौन से विषय पूछ सकता हूं] (http://stackoverflow.com/help/on-topic) देखें। शायद [सुपर उपयोगकर्ता] (http://superuser.com/) या [यूनिक्स और लिनक्स स्टैक एक्सचेंज] (http://unix.stackexchange.com/) पूछने के लिए एक बेहतर जगह होगी। यह भी देखें [मैं देव ओप्स के बारे में प्रश्न कहां पोस्ट करूं?] (Http://meta.stackexchange.com/q/134306)। – jww

+0

यह भी देखें [आप अपने प्रमाणन प्राधिकरण के साथ प्रमाणपत्र हस्ताक्षर अनुरोध पर हस्ताक्षर कैसे करते हैं?] (Http://stackoverflow.com/a/21340898/608639) – jww

+0

@jww मैं देख सकता हूं कि आप क्यों कहते हैं कि प्रश्न ऑफ-विषय है लेकिन ऐसा लगता है स्टैक-ओवरफ्लो पर अधिकांश एसएसएल संबंधी प्रश्नों के मामले होने के लिए जो आप लिंक कर रहे हैं :) – jimmy

उत्तर

9

आप उपयोग कर सकते हैं:

copy_extensions = copy 

अपने CA_default अनुभाग के तहत अपने openssl.cnf में।

लेकिन केवल तभी जब आप सुनिश्चित करें कि आप के रूप में इस सूत्र में बताया सीएसआर में एक्सटेंशन पर भरोसा कर सकते हैं: http://openssl.6102.n7.nabble.com/subjectAltName-removed-from-CSR-when-signing-td26928.html

यह भी देखें: How can I generate a self-signed certificate with SubjectAltName using OpenSSL?

+0

बिल्कुल सही, यह एक आकर्षण की तरह काम किया! धन्यवाद! – jimmy

+0

@jimmy - 'copy_extensions = copy' से सावधान रहें। आपको प्रत्येक हस्ताक्षर अनुरोध को सत्यापित करने की आवश्यकता है। एक बुरा आदमी 'सीए = TRUE' सेट कर सकता है और आप उसे एक अधीनस्थ सीए खनन करेंगे। – jww

+0

@jww अच्छी सलाह। मुझे इस पर विचार करना होगा। – jimmy

0

सब लोग के लिए, जो नहीं करता है संपादित करना चाहते सिस्टम-व्यापी openssl.conf, से .crt पर SAN जोड़ने के लिए एक मूल openssl सीएलआई विकल्प है। आपको बस उपयोग करना है openssl's -extfile और -extensions सीएलआई पैरामीटर।

Here's एक उदाहरण:

openssl x509 -req -days 3650 -in alice.csr -signkey aliceprivate.key -out alice.crt -extfile alice-csr.conf -extensions v3_req 

यह एक ऐलिस-csr.conf फ़ाइल है, जो इस तरह दिखता है की आवश्यकता है (अपने उचित डेटा में भरने) और जो आदेश openssl req -new -key aliceprivate.key -out alice.csr -config alice-csr.conf साथ .csr उत्पन्न करने के लिए इस्तेमाल किया गया था :

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

[req_distinguished_name] 
C = DE 
ST = Thuringia 
L = Erfurt 
O = Alice Corp 
OU = Team Foo 
CN = server-alice 

[v3_req] 
keyUsage = keyEncipherment, dataEncipherment 
extendedKeyUsage = serverAuth 
subjectAltName = @alt_names 
[alt_names] 
DNS.1 = server-alice 
DNS.2 = localhost 

ध्यान रखें, कि -extensions v3_req विकल्प फ़ाइल alice-csr.conf है, जहां आप को परिभाषित में [v3_req] खंड से मेल खाती है आप विषय के वैकल्पिक नाम डोमेन, उर्फ ​​जो आप अपना प्रमाण पत्र जारी करना चाहते हैं। https://github.com/jonashackt/spring-boot-rest-clientcertificates-docker-compose

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