SSL सर्टिफिकेट नॉन-इंटरेक्टिवली बनाएं [बंद]


28

मैं चुपचाप, गैर-संवादात्मक रूप से, एसएसएल प्रमाणपत्र बनाना चाहता हूं। यानी, बिना किसी भी डेटा के लिए संकेत मिले।

प्रमाण पत्र बनाने का सामान्य तरीका यह होगा:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 \
    -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem 

मैंने निम्नलिखित कोशिश की:

openssl genrsa -out server.key 2048
touch openssl.cnf

cat >> openssl.cnf <<EOF
[ req ]
prompt = no
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C = GB
ST = Test State
L = Test Locality
O = Org Name
OU = Org Unit Name
CN = Common Name
emailAddress = test@email.com
EOF

openssl req -x509 -config openssl.cnf -nodes -days 7300 \
    -signkey server.key -out /etc/ssl/private/pure-ftpd.pem 

लेकिन मुझे अभी भी डेटा के लिए संकेत मिलता है।


1
क्या आप वांछित परिणाम के बजाय क्या हो रहा है, इसका स्पष्टीकरण या आउटपुट प्रदान कर सकते हैं?
पैट्रिक

मुझे आउटपुट के रूप में सहायता मिलती है- यहाँ मापदंडों के साथ कुछ भी गलत है:openssl req -x509 -config openssl.cnf -nodes -days 7300 -signkey server.key -out /etc/ssl/private/pure-ftpd.pem
TheNiceGuy

जब आपको समस्याएँ हों तो त्रुटियों का आउटपुट प्रदान करना सबसे अच्छा है। मैं अनुमान लगा रहा हूं कि आपका मुद्दा इसकी वजह है -signkey। यह openssl reqमेरे सिस्टम पर एक वैध विकल्प नहीं है। त्रुटि संदेश में यह पहली पंक्ति के रूप में होगा:unknown option -signkey
पैट्रिक

ठीक है कि साइनकी को एसएसएल को बताई गई कुंजी का उपयोग करना चाहिए जैसा कि मुझे पता है?
TheNiceGuy

आपका "प्रमाण पत्र बनाने का सामान्य तरीका" किसी भी डेटा के लिए संकेत नहीं करता है। क्या आप इसे कुछ भी आउटपुट नहीं देना चाहते हैं? फिर उपयोग करें 2> /dev/null
विंगड्यूसम्ब्रेनर

जवाबों:


51

आप जिस चीज़ को याद कर रहे हैं वह है -subjध्वज में प्रमाणपत्र विषय को शामिल करना । मैं इसे एक config फाइल बनाने के लिए पसंद करता हूं क्योंकि यह वर्कफ़्लो में एकीकृत करना आसान है और इसके बाद की सफाई की आवश्यकता नहीं है।

एक कदम कुंजी और सीएसआर पीढ़ी:

openssl req -new -newkey rsa:4096 -nodes \
    -keyout www.example.com.key -out www.example.com.csr \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"

एक कदम स्व हस्ताक्षरित पासवर्ड रहित प्रमाणपत्र पीढ़ी:

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout www.example.com.key  -out www.example.com.cert

इनमें से कोई भी आदेश किसी भी डेटा के लिए संकेत देगा।

सुपर यूजर के इस लगभग समान प्रश्न पर मेरा उत्तर देखें ।


ओ अच्छा है कि एक अच्छा समाधान है। कोड्स को बहुत छोटा बनाता है।
साभार

1
जैसा कि मैंने सोचा था कि यह एक अधिक जटिल प्रमाणपत्र के लिए एक स्टैंडिन हो सकता है, मैंने उसकी मूल कॉन्फ़िगरेशन फ़ाइल को संशोधित नहीं किया। कुछ कॉन्फ़िगरेशन जिन्हें एक -subjपैरामीटर के साथ नहीं दिखाया जा सकता है , खासकर जब आप v3 एक्सटेंशन और सब्जेक्टनेम पैरामीटर में आते हैं।
रॉबट 2

1
आप -batch(गैर-संवादात्मक मोड) का उपयोग भी कर सकते हैं
एरन एच।

ध्यान दें कि पहले कमांड को अस्तित्व में लाने से पहले कुंजी की आवश्यकता होती है, जहां दूसरी कमांड उन्हें कुंजी और स्वचालित रूप से प्रमाणित करती -subjहै क्योंकि एक मूल वैध इन-लाइन CSR है।
ड्रैगन 788

@ dragon788 कि बाहर इशारा करने के लिए धन्यवाद। मैंने ठीक कर दिया।
बहमट

1

आप जिस आदेश को देख रहे हैं, वह है:

openssl req -new -x509 -config openssl.cnf -nodes -days 7300 -key server.key -out /etc/ssl/private/pure-ftpd.pem

आपके संस्करण से परिवर्तन:

  • -new कुछ भी उत्पन्न करने के लिए आवश्यक है
  • -key के स्थान पर उपयोग किया जाता है -signkey
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.