मैं स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र कैसे बना सकता हूं?


64

मैंने अपने वेबसर्वर पर SSL स्थापित किया है, अब मुझे दो फ़ाइलों की आवश्यकता है:

  • एक प्रमाण पत्र
  • एक प्रमाणपत्र कुंजी

मैं परीक्षण उद्देश्यों के लिए स्व-हस्ताक्षरित प्रमाण पत्र कैसे बना सकता हूं?

जवाबों:


93

उबंटू, यहां तक ​​कि 'न्यूनतम' स्वाद, ssl-certपहले से स्थापित पैकेज के साथ आता है, जिसका अर्थ है कि आपको कुछ भी करने की आवश्यकता नहीं है।

वे फ़ाइलें जिन्हें आप देख रहे हैं वे पहले से ही आपके सिस्टम पर हैं:

/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key


उन्नत:

यदि किसी कारण से आपको एक नया प्रमाणपत्र बनाने की आवश्यकता है, तो आप चला सकते हैं

sudo make-ssl-cert generate-default-snakeoil --force-overwrite 

यदि आप अपने प्रमाणपत्र की समाप्ति तिथि बदलना चाहते हैं, तो आप मेक-एसएल-प्रमाणित स्क्रिप्ट में हेरफेर कर सकते हैं /usr/sbin/make-ssl-cert। 124 के आसपास इस तरह की एक पंक्ति है:

openssl req -config $TMPFILE -new -x509 -nodes \ 

जहां आप -daysतर्क जोड़कर समाप्ति तिथि बदल सकते हैं :

openssl req -config $TMPFILE -new -days 365 -x509 -nodes \ 

के मैनुअल पृष्ठreq में अधिक विकल्प पाए जा सकते हैं ।


10
ubuntu-server 12.04 (AMI क्लाउड इमेज) में ssl-cert स्थापित नहीं है जो डिफ़ॉल्ट रूप से है। लेकिन एक बार ssl-cert स्थापित हो जाने के बाद - /etc/ssl/certs/ssl-cert-snakeoil.pem अपने आप उपलब्ध हो जाता है।
स्टैन

मेक-एसएसएल-सर्टिफिकेट का उपयोग करने के लिए महत्वपूर्ण लंबाई (और अन्य सेटिंग्स) लेता है /usr/share/ssl-cert/ssleay.cnf
टिम स्मिथ

एक स्थानीय योनि वीएम उदाहरण में एक वेबसाइट का परीक्षण करने के प्रयास में, मैं Google Chrome को कार्य करना चाहता था जैसे कि यह पूरी तरह से सामान्य प्रमाण पत्र हो। मुझे VM CLI में कमांड www.test.mydomain.comका उपयोग करके परीक्षण url (जैसे ) से मेल करने के लिए पहले VM के होस्टनाम को सेट करना था hostname। फिर कुंजी को फिर से लिखना जैसा कि आप सुझाव देते हैं, --force-overwriteकुंजी का सामान्य नाम (CN) तब परीक्षण url से मेल खाता है। अंत में, मेजबान मशीन पर, एक विश्वसनीय रूट प्रमाणपत्र प्राधिकरण (क्रोम की सेटिंग / उन्नत में) के रूप में कुंजी स्थापित करने से मुझे प्रतिष्ठित हरे पते की बार मिल गई।
बटल बट्स

1
मेरे 9 वर्षीय प्रमाण ने डेबियन 10 में मेरे अपग्रेड के साथ काम करना बंद कर दिया, इसलिए make-ssl-certकमांड ने मेरे लिए दिन बचा लिया!
Jayen

23

जैसा कि पहले ही उल्लेख किया गया है, उबंटू सर्वर आवश्यक उपकरण के साथ आता है। आपके सर्वर संस्करण के आधार पर आपको विशिष्ट दस्तावेज़ देखना होगा । मैं वर्तमान LTS (12.04) की स्व-हस्ताक्षरित प्रमाणपत्र पीढ़ी प्रक्रिया को संक्षेप में प्रस्तुत करने का प्रयास करूँगा ।

सबसे पहले आप सर्टिफिकेट साइनिंग रिक्वेस्ट (CSR) के लिए कुंजियाँ बनाएँ:

openssl genrsa -des3 -out server.key 2048

पासफ़्रेज़ दर्ज करना या न करना आपके ऊपर है। यदि आप करते हैं, तो हर बार आप (पुनः) एक सेवा शुरू करते हैं जो प्रमाण पत्र प्रदान करता है, आपको पासफ़्रेज़ प्रदान करना होगा। ओटोह आप सुरक्षित से पासफ़्रेज़ के बिना एक "असुरक्षित" कुंजी बना सकते हैं:

openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key

और अब आप कुंजी से CSR बनाएंगे। CSR और कुंजी के साथ एक स्व-हस्ताक्षरित प्रमाण पत्र उत्पन्न किया जा सकता है:

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

अंतिम चरण में सामान्यतः डेबियन / उबंटू में प्रमाण पत्र और कुंजी स्थापित करना शामिल है /etc/ssl:

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

और अंत में प्रमाण पत्र / कुंजी का उपयोग करने वाले अनुप्रयोगों को तदनुसार कॉन्फ़िगर करना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.