2014-11-11 7 views
12

संपादित करें: सर्वर फॉल्ट पर यह पूछना बेहतर हो सकता है, लेकिन मेरी प्रतिष्ठा मुझे 2 से अधिक लिंक पोस्ट करने नहीं देगी। :(कौन सा प्रमाणपत्र श्रृंखला फ़ाइल स्वयं हस्ताक्षरित प्रमाणपत्र के साथ शामिल करने के लिए?

मैं, कुछ पृष्ठ हैं जो सुरक्षित होने की अपनी वेबसाइट पर पासवर्ड की आवश्यकता चाहते हैं, तो मैं this पीछा एक कस्टम SSL प्रमाणपत्र बनाने के लिए। मैं भी पीछा किया this क्योंकि यह बताते हैं कि कैसे स्व-हस्ताक्षरित प्रमाण पत्र मल्टीडोमेन उत्पन्न करने के लिए (subjectAltName मुझे example.com और * .example.com के लिए एक वैध प्रमाणपत्र प्राप्त करने की अनुमति देता है, मुझे ऐसा करने का कोई और तरीका नहीं मिला)
इसलिए मुझे जो चाहिए था उसे प्राप्त करने के लिए मुझे आदेशों को मिश्रण करना पड़ा, और मुझे लगता है कि सब कुछ है ठीक है मैंने जो किया (ठीक है, मैं इसे बाद में विस्तारित कर दूंगा)।
अब मुझे पोर्ट 443 पर प्रश्नों को सुनने और अनुसूचित पृष्ठों पर एसएसएल सुरक्षा प्रदान करने के लिए अपाचे को कॉन्फ़िगर करना होगा। इसलिए मुझे this मिला।

जब परिभाषित करने VirtualHost 443 पोर्ट पर सुन रहा है, यह कहना है कि यह:

<VirtualHost 127.0.0.1:443> 
    SSLEngine On 
    SSLCertificateFile /etc/apache2/ssl/something.crt 
    SSLCertificateKeyFile /etc/apache2/ssl/something.key 
    SSLCertificateChainFile /etc/apache2/ssl/gd_bundle.crt 
    ... 
</VirtualHost> 

मुझे लगता है कि मैं जानता हूँ कि मैं फ़ाइलों SSLCertificateFile और SSLCertificateKeyFile क्षेत्रों के लिए निर्दिष्ट करने की आवश्यकता नहीं है क्या, लेकिन मैं आंकड़ा नहीं कर पा रहे SSLCertificateChainFile क्या है। सब कुछ मैं गूगल और स्टैक एक्सचेंज समुदायों पर खोज कर मुझे अब तक मदद नहीं की द्वारा पाया, तो मैं यह स्पष्ट यहाँ पूछ रहा हूँ:

क्या फ़ाइल मैं SSLCertificateChainFile लिए प्रदान करना चाहिए, और मैं इसे कैसे बना सकता हूँ अगर जरूरत?


यहां दी गई फाइलें हैं जिन्हें मैंने अलग-अलग लिंक के निर्देशों का पालन करके बनाया है, जिन आदेशों का मैंने उन्हें उपयोग किया था।

  • प्रमाणपत्र प्राधिकरण कुंजी (ca.key): openssl genrsa -des3 -out ca.key 1024
  • कुंजी का प्रमाणपत्र (ca.san.csr): openssl req -new -key ca.key -out ca.san.csr -config /etc/ssl/openssl.cnf
    यहाँ मैं कॉन्फ़िग फ़ाइल पथ निर्दिष्ट किया है क्योंकि मैं इसे जोड़ने के लिए एक छोटा सा बदलना पड़ा subjectAltName। मैं यह भी जांच सकता था कि openssl req -text -noout -in ca.san.csr के साथ सब ठीक हो गया। सब कुछ here वर्णित है।
  • प्रमाण पत्र का निर्माण और हस्ताक्षर (ca.san.crt): openssl x509 -req -days 3650 -in ca.san.csr -signkey ca.key -out ca.san.crt -extensions v3_req -extfile /etc/ssl/openssl.cnf
    फिर, conf फ़ाइल की आवश्यकता है क्योंकि subjectAltNames इसमें परिभाषित किया गया है।
  • सर्वर कुंजी (server.key): openssl genrsa -out server.key 1024
  • कुंजी का प्रमाणपत्र (server.san.csr): openssl req -new -key server.key -out server.san.csr -config /etc/ssl/openssl.cnf
  • सर्वर प्रमाणपत्र (server.san.crt): openssl x509 -days 3650 -CA ca.san.crt -CAkey ca.key -set_serial 01 -in server.san.csr -req -out server.san.crt

के लिए SSLCertificateFile, मैंने सोचा कि मैं server.san.crt फ़ाइल प्रदान करूंगा, यह मेरे लिए सबसे तार्किक बात है, साथ ही SSLCertificateKeyFile के लिए फ़ाइल प्रतीत होता है।
SSLCertificateChainFile.crt फ़ाइल के लिए पूछताछ करता है, इसलिए यह केवल .crt फ़ाइल है जो मेरे पास है, ca.san.crt, लेकिन मुझे वास्तव में इसके बारे में निश्चित नहीं है।

क्या किसी के पास कुछ संकेत है?
इसे पढ़ने के लिए आपके समय के लिए धन्यवाद।


समाधान
इस विशेष मामले के लिए, के बाद से मैं एक कस्टम प्रमाण पत्र का उपयोग कर रहा, SSLCertificateChainFile ज्यादा मतलब नहीं है (नीचे चिह्नित जवाब देखें)। इस प्रकार, आपको केवल दोनों निर्देशों के लिए एक ही प्रमाणपत्र फ़ाइल निर्दिष्ट करना है, SSLCertificateFile और SSLCertificateChainFile
SSL* निर्देशों का उपयोग करने से पहले अपाचे के साथ आपको केवल एक चीज करने की आवश्यकता है। एसएसएल को अपाचे पर डिफॉल्ट रूप से अक्षम किया गया है, इसलिए आपको sudo a2enmod ssl के साथ इसे सक्षम करने की आवश्यकता है, या अपाचे को पुनरारंभ करते समय आपको एक त्रुटि मिलेगी कि आपने अपनी vHosts फ़ाइलों में कुछ गलत तरीके से गलत लिखा होगा।
एक बार ऐसा करने के बाद और सर्वर को पुनरारंभ करने के बाद आप HTTPS के साथ अपने vHosts पर कनेक्ट हो सकते हैं। आपका ब्राउज़र आपको बताएगा कि प्रमाणपत्र मान्य नहीं है क्योंकि यह स्वयं हस्ताक्षरित है, लेकिन आपका कनेक्शन सुरक्षित होगा।

उत्तर

7

मैं कुछ पृष्ठों है कि मेरी वेबसाइट पर पासवर्ड की आवश्यकता सुरक्षित

सिर्फ एक टिप्पणी होना चाहता हूँ। एक सर्वोत्तम अभ्यास के रूप में, संपूर्ण वेबसाइट को एसएसएल के साथ संरक्षित किया जाना चाहिए। यहां एक ब्लॉग पोस्ट है जो बताता है कि क्यों प्रमाणीकरण पृष्ठों पर SSL पर्याप्त नहीं है: Securing your ASP.NET MVC 4 App and the new AllowAnonymous Attribute (हालांकि यह एएसपी एमवीसी से संबंधित है, अन्य प्लेटफ़ॉर्म भी प्रभावित होते हैं)।

लेकिन मैं यह पता लगाने की SSLCertificateChainFile

मुझे लगता है कि क्या नहीं कर पा रहे हैं, यह एक PKCS # 7 कंटेनर कि मध्यवर्ती CA प्रमाणपत्र शामिल है।

  1. स्व-हस्ताक्षरित प्रमाणपत्र ही (केवल सार्वजनिक भाग)
  2. किया जा सकता है: स्व-हस्ताक्षरित प्रमाण पत्र के साथ, वहाँ कोई अन्य प्रमाण पत्र, इसलिए (क्षमा करें, मैं एक अपाचे विशेषज्ञ नहीं हूँ) इस फाइल किया जा सकता है हटा दिया गया है (यह फ़ाइल स्वयं हस्ताक्षरित SSL प्रमाणपत्रों के साथ कोई समझ नहीं लेती है)
  3. खाली (कम संभावना है, अपाचे गलत फ़ाइल प्रारूप के बारे में शिकायत कर सकता है)।

मैं चरण 1 के साथ जाऊंगा, उसी प्रमाणपत्र को SSLCertificateFile और SSLCertificateChainFile पैरामीटर पर पास कर दूंगा।

+0

मैं कोशिश करूँगा और प्रतिक्रिया दें ASAP, धन्यवाद। – qreon

+0

ठीक है तो ऐसा लगता है: यह काम करता है। मैं अतिरिक्त जानकारी के बारे में विवरण के लिए ओपी संपादित करूंगा। लिंक के लिए भी धन्यवाद, मैं इसके बारे में कुछ करूँगा। – qreon

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