क्या पास वाक्यांश के बिना आरएसए कुंजी उत्पन्न करना संभव है?


83

मैं Apache2 और पैसेंजर के साथ रेल प्रोजेक्ट के लिए काम कर रहा हूं। मैं परीक्षण प्रयोजनों के लिए एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र बनाना चाहूंगा ।

sudo openssl rsa -des3 -in server.key -out server.key.new

जब मैं उपरोक्त कमांड दर्ज करता हूं, तो यह कहता है

writing RSA key
Enter PEM pass phrase:

यदि मैं पास के पास में प्रवेश नहीं करता हूं, तो नीचे त्रुटि हो रही है

unable to write key
3079317228:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:Yo
u must type in 4 to 1024 characters
3079317228:error:0906406D:PEM routines:PEM_def_callback:problems getting passwor
d:pem_lib.c:111:
3079317228:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:382

क्या बिना आरएसए कुंजी उत्पन्न करना संभव है pass phrase, क्योंकि मुझे यकीन नहीं है कि /etc/init.d/httpdस्क्रिप्ट मानव हस्तक्षेप के बिना एचटीटीपी सर्वर कैसे शुरू करेगी (यानी अगर मैं 4 वर्ण पास वाक्यांश देता हूं, तो मुझे अपाचे एचटीटीपी सर्वर शुरू करते समय यह प्रदान करने की उम्मीद है। )।


6
आपकी कमांड लाइन opensslकिसी मौजूदा कुंजी को एन्क्रिप्ट करने के लिए कहती है। जो आपको चाहिए उसके अलावा कुछ और जैसा लगता है।
डेविड श्वार्ट्ज

अपाचे httpd को निजी तौर पर पासफ़्रेज़ प्राप्त करने के लिए कॉन्फ़िगर किया जा सकता है; mod_ssl के लिए डॉक्टर को देखें, या कई मामलों में प्रदान की गई / पैकेज्ड कॉन्फिग फाइल (ओं) में टिप्पणी करें। हालांकि, यह आमतौर पर निजीकरण को अनियंत्रित छोड़ने की तुलना में अधिक सुरक्षित नहीं है, जो सरल है।
dave_thompson_085

जवाबों:


88

यदि आप स्व हस्ताक्षरित प्रमाण पत्र बना रहे हैं, तो आप कुंजी और प्रमाण दोनों को एक कमांड में कर सकते हैं:

openssl req  -nodes -new -x509  -keyout server.key -out server.cert

ओह, और क्या @MadHatter ने ध्वज को छोड़ने के बारे में अपने जवाब में कहा -des3


14
नोड्स का निर्देश है कि मैं यहां क्यों हूं। (निजी कुंजी का नो डेस एन्क्रिप्शन)
जोर्फस

38

-des3झंडे को छोड़ दें , जो कि server.key.new एन्क्रिप्ट करने के लिए ओपनसिएल का एक निर्देश है (जो, संयोगवश, एक नई कुंजी बिल्कुल नहीं है - यह बिल्कुल server.key के समान है, केवल पासफ़्रेज़ बदल गया / छीन लिया गया) ।


21

openssl reqसे आदेश @Tom एच द्वारा जवाब में एक स्व-हस्ताक्षरित प्रमाणपत्र बनाने के लिए सही है server.certincl। पासवर्ड-कम RSA निजी कुंजी इसमें server.key:

openssl req -nodes -new -x509 -keyout server.key -out server.cert

यहाँ दिया गया है कि यह कैसे काम करता है। छोड़ना -des3में के रूप में @MadHatter द्वारा जवाब इस मामले पदबंध के बिना एक निजी कुंजी बनाने के लिए पर्याप्त नहीं है। यह है में इस उद्देश्य के लिए पर्याप्त openssl rsa( "एक निजी कुंजी परिवर्तित") आदेश @MadHatter और से जाना जाता openssl genrsa( "एक निजी कुंजी बनाने") आदेश। सिर्फ openssl reqयहां कमांड के लिए नहीं । हमें इसके अतिरिक्त जरूरत है -nodes("नो डेस एन्क्रिप्शन ऑफ server.keyप्लीज!")।


17

-nodesपैरामीटर का उपयोग करें , यदि यह विकल्प निर्दिष्ट है, तो निजी कुंजी एन्क्रिप्ट नहीं की जाएगी, उदाहरण के लिए:

openssl \
    req \
    -nodes \
    -newkey rsa:2048 \
    -keyout www.example.com.key \
    -out www.example.com.csr \
    -subj "/C=DE/ST=NRW/L=Berlin/O=My Inc/OU=DevOps/CN=www.example.com/emailAddress=dev@www.example.com"

7

बस इसे फिर से Opensl के माध्यम से चलाएं

पहले पासफ़्रेज़ के साथ कुंजी उत्पन्न करें

फिर openssl rsa -in server.key -out server.key


यह ubuntu 16.04
sweetfa

3
मैंने अस्वीकार कर दिया क्योंकि यह उत्तर वह नहीं है जो पूछा गया था, यह भी आदेश के लिए एक इनपुट की आवश्यकता है और एक कुंजी उत्पन्न नहीं करता है।
डॉन

उपयोगकर्ता ने पहले ही प्रदर्शित कर दिया कि वे जानते हैं कि कुंजी कैसे बनाई जाती है। यह उत्तर उस ज्ञान का निर्माण करता है, और मैं सुझाव देता हूं कि नई उत्पन्न कुंजी को ले लें और इसे फिर से पारित करें openssl ताकि जो पूछा गया उसका लक्ष्य प्राप्त करें: पास वाक्यांश के बिना एक कुंजी उत्पन्न करना।

opensslGitBash से विंडोज 10 पर मेरे लिए काम करता है । जानकारी के लिए धन्यवाद।
ग्रीन

0

NO एन्क्रिप्शन के साथ पासवर्ड-कम निजी कुंजी फ़ाइल बनाने के लिए अगले कमांड का उपयोग करें । अंतिम पैरामीटर निजी कुंजी का आकार है।

openssl genrsa -out my-passless-private.key 4096

1
यह पासवर्ड-कम नहीं है। यह पूरी तरह से और पूरी तरह से पासवर्ड-फुल है।
dave_thompson_085

मैं मापदंडों की स्थिति के साथ प्रयोग कर रहा था। अब ठीक है। मैंने पिछले दो मापदंडों के स्थानों को बदल दिया और कमांड का परीक्षण किया।
nix

अब यह एक अनएन्क्रिप्टेड फ़ाइल का उत्पादन करता है । (केवल) स्थितिगत तर्क के बाद के विकल्पों को नजरअंदाज कर दिया जाता है। फ़ाइल को देखो; यह एन्क्रिप्टेड नहीं है। के 4096 -des3साथ बदलें 4096 -sillywombatऔर यह अभी भी काम करता है और एक ही प्रारूप का उत्पादन करता है, फिर भी अनएन्क्रिप्टेड (लेकिन पाठ्यक्रम का एक अलग मूल्य)। पासवर्ड रहित एन्क्रिप्टेड प्राइवेटकी फ़ाइल रखने का कोई तरीका नहीं है, और पासवर्ड रहित अनएन्क्रिप्टेड फ़ाइल के लिए सही समाधान छह साल पहले दिए गए थे।
dave_thompson_085

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