लगता है अपाचे पुराने एक्सपायर्ड सर्टिफिकेट का उपयोग कर रहे हैं भले ही नया स्थापित हो


15

अपाचे 2.2.3 / mod_ssl / CentOS 5.5 VPS

हमारा प्रमाण पत्र 2011-10-06 को समाप्त हो गया है, और भले ही हमने नए को सही ढंग से स्थापित किया हो, लेकिन साइट पर ब्राउज़ करना अभी भी एक समय सीमा समाप्त प्रमाणपत्र दिखाता है! मैंने अपना ब्राउज़र कैश हटाने और कई अलग-अलग ब्राउज़रों का उपयोग करने की कोशिश की है। Ssl.conf फ़ाइल से प्रासंगिक रेखाएँ (मैंने उन टिप्पणियों को बाहर रखा है।)।

Listen 127.0.0.1:443
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
# Note - I tried disabling SSLSessionCache with the "none" setting but it didn't help.
<VirtualHost 127.0.0.1:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt
SSLCertificateKeyFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.key
SSLCertificateChainFile /var/certs/gentlemanjoe.com/new2011/gd_bundle.crt
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ServerAdmin webmaster@donotemailme.com
DocumentRoot /var/www/gentlemanjoe.com
ServerName gentlemanjoe.com
<Directory /var/www/gentlemanjoe.com>
    AllowOverride All
    Order deny,allow
    allow from all
</Directory>          
</VirtualHost>

चीजें जो मैंने जाँची हैं

पहले मैंने कोशिश की कि पुराने अपाचे और मुख्य फाइलों को पूरी तरह से अलग फ़ोल्डर में ले जाया जाए ताकि यह सुनिश्चित हो सके कि अपाचे अभी भी किसी तरह उन्हें हड़प नहीं रहा है। कुछ नहीं बदला। मज़े के लिए मैंने अस्थायी रूप से नई प्रमाणपत्र और कुंजी फ़ाइलों का नाम बदलने की कोशिश की, और अपाचे ने कर्तव्यपूर्वक शिकायत की और शुरू करने से इनकार कर दिया।

तब मैंने यह सुनिश्चित करने की कोशिश की कि मुझे गलत कॉन्फिगर फाइल को एडिट करके बेवकूफ नहीं बनाया जा रहा है। "पता" का उपयोग करके मुझे /etc/httpd/conf/httpd.conf के अंतर्गत केवल एक httpd.conf फ़ाइल मिली। मैंने केवल "ssl.conf फ़ाइल, /etc/httpd/conf.d/ssl.conf" को सत्यापित करने के लिए "पता" का उपयोग किया है। GoDaddy ने CSR को बनाने के लिए जो निर्देश दिए थे, उसके बाद मैंने OpenSSL का उपयोग करते हुए कुंजी फ़ाइल बनाई है।

मैंने सत्यापित किया है कि मैं /.html/www/gentlemanjoe.com फ़ोल्डर में एक test.html फ़ाइल अपलोड करके और साइट पर यह सत्यापित करने के लिए कि मैं इसे ब्राउज़ कर सकता हूं, सही साइट के साथ काम कर रहा हूं। लेकिन अगर मैं HTTPS में परीक्षण फ़ाइल देखने की कोशिश करता हूं, तो मुझे वही प्रमाणपत्र समाप्ति चेतावनी मिलती है।

मैंने सत्यापित किया कि प्रमाणपत्र के पास सही समाप्ति तिथि है:

openssl x509 -in /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt -noout -text

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            07:e7:49:69:97:96:16
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certificates.godaddy.com/repository, CN=Go Daddy Secure Certification Authority/serialNumber=07969287
        Validity
            Not Before: Oct 21 17:37:55 2011 GMT
            Not After : Oct  8 21:16:03 2013 GMT
        Subject: C=CA, ST=BC, L=Burnaby, O=Diamond Bailey Consolidated Commercial Services Ltd, OU= , CN=www.gentlemanjoe.com

मैंने एक नए CSR के साथ GoDaddy पर प्रमाणपत्र को फिर से कुंजी देने की कोशिश की और सब कुछ काम करने लगता है, लेकिन मुझे ब्राउज़र में एक ही परिणाम मिलता है।

संभावित सुराग # 1

जब भी मैं "अपाचेक्टल रीस्टार्ट" करता हूं, मैं इसे error_log फ़ाइल में देखता हूं:

[Fri Oct 21 18:03:33 2011] [notice] SIGHUP received.  Attempting to restart
[Fri Oct 21 18:03:33 2011] [notice] Digest: generating secret for digest authentication ...
[Fri Oct 21 18:03:33 2011] [notice] Digest: done
[Fri Oct 21 18:03:33 2011] [info] APR LDAP: Built with OpenLDAP LDAP SDK
[Fri Oct 21 18:03:33 2011] [info] LDAP: SSL support available
[Fri Oct 21 18:03:33 2011] [info] Init: Seeding PRNG with 256 bytes of entropy
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Shared memory session cache initialised
[Fri Oct 21 18:03:33 2011] [info] Init: Initializing (virtual) servers for SSL
[Fri Oct 21 18:03:33 2011] [warn] RSA server certificate CommonName (CN) `www.gentlemanjoe.com' does NOT match server name!?
[Fri Oct 21 18:03:33 2011] [info] Server: Apache/2.2.3, Interface: mod_ssl/2.2.3, Library: OpenSSL/0.9.8e-fips-rhel5
[Fri Oct 21 18:03:34 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Oct 21 18:03:34 2011] [info] Server built: Aug 30 2010 12:28:40

GoDaddy तकनीक मुझे बताती है कि www बनाम गैर-www को कोई फर्क नहीं पड़ना चाहिए, और मैं सहमत हूं, क्योंकि मेरे ब्राउज़र में सुरक्षा चेतावनी सर्वर नाम बेमेल के बारे में शिकायत नहीं कर रही है, बल्कि एक समाप्ति है , जो यह दर्शाता है कि पुराना प्रमाण पत्र अभी भी है किसी तरह लादा जा रहा है।

संभावित सुराग # 2

Http://gentlemanjoe.com के लिए HTTP सर्वर प्रतिक्रिया हेडर "अपाचे" के बजाय "एंड्रोमेडा" कहता है। "एंड्रोमेडा" के मेरे Googling के बाद से यह मेरे लिए अजीब लगता है, एक मीडिया-सर्वर प्रकार परियोजना को चालू करता है, जो इस सर्वर पर स्थापित नहीं होगा (लेकिन मैं यह नहीं कह सकता कि जब से मैंने इसमें से कोई भी सेट नहीं किया है सामान्य व्यवस्थापक / डेवलपर छुट्टी पर है और मैं सिर्फ उसकी साइट के साथ एक दोस्त की मदद कर रहा हूं।) इसके अलावा, httpd.conf फ़ाइल में स्ट्रिंग "एंड्रोमेडा" नहीं है जो यह दर्शाता है कि इसे बाहर थूकने के लिए संशोधित नहीं किया गया है। तो यह Magento ई-कॉमर्स प्लेटफॉर्म हो सकता है जिसका वह उपयोग कर रहा है, लेकिन मानक Apache प्रतिक्रिया हेडर की जगह क्या होगा?


यह त्रुटि क्या है: RSA सर्वर प्रमाणपत्र CommonName (CN) `www.gentlemanjoe.com 'सर्वर नाम से मेल नहीं खाता !?
mdpc

मुझे वास्तव में यकीन नहीं है, मुझे लगता है कि यह शिकायत कर रहा है कि www.gentlemanjoe.com सज्जनता से मेल नहीं खाता। यदि यह केवल एक सामान्य नाम / सर्वर नाम मिस्टमैच त्रुटि थी, तो क्या मुझे ब्राउज़र सुरक्षा चेतावनी में दिखाई नहीं देगा? नए प्रमाण पत्र की अवधि समाप्त नहीं होनी चाहिए , लेकिन गलत नाम के बारे में एक अलग चेतावनी के साथ, है ना?
जॉर्डन रीगर

जवाबों:


17

अपाचे के सामने कुछ। उस कॉन्फ़िगरेशन को देखें:

Listen 127.0.0.1:443
....
<VirtualHost 127.0.0.1:443>

यह केवल लोकलहोस्ट पर सुन रहा है, इसलिए इंटरनेट क्लाइंट सीधे इस सेवा को नहीं मार रहे हैं - वे संभावित रूप से चिंतित हैं।

पवित्रता की जाँच के लिए कि अपाचे का सही प्रमाण लोड हो रहा है, सीधे अपाचे के श्रोता पर सेवा को मारें: openssl s_client -connect 127.0.0.1:443 -showcerts

एंड्रोमेडा हेडर के बारे में निश्चित नहीं है, इसलिए, इस प्रक्रिया को खोजें lsof -i:।

अपाचे के पास होगा 127.0.0.1:443, जबकि कुछ अन्य सेवा में 0.0.0.0:443(या वीपीएस का सार्वजनिक पता :443) है - यह वही है जिसे नए प्रमाणपत्र की आवश्यकता है।


हाँ! शुक्रिया शेन, यह बहुत तार्किक था। लड़का यह एक कठिन था। यह प्रक्रिया एक प्रॉक्सी सर्वर के रूप में निकली, जिसे nginx कहा जाता है, एक IP पते पर सुन रहा है जो मुझे नहीं पता था कि वह सर्वर से जुड़ा था और फिर Apache को HTTPS और HTTP अनुरोधों को रिले कर रहा था । मेरे पास कोई सुराग नहीं है कि आखिरी आदमी ने क्यों सोचा कि यह एक अच्छा विचार है, यह एक व्यर्थ प्रदर्शन हॉग लगता है। और नगीनेक्स ने मुझे सर्टिफिकेट को रिसेट करने के लिए आवश्यक किया जो GoDaddy सर्वर सर्टिफिकेट और अथॉरिटी चेन को एक निश्चित क्रम में एक फाइल में डालने के लिए प्रदान करता है। वैसे भी, अब यह काम करता है! धन्यवाद!
जॉर्डन रेजर

2
@JordanRieger सुनने में अच्छा है! नगनेक्स को आमतौर पर अपाचे की तुलना में हल्का और तेज माना जाता है, इसलिए इसके लिए एक मामला हो सकता है यदि यह आंतरिक रूप से कुछ अनुरोधों को संभाल रहा है (कहें, स्थैतिक सामग्री) और अपाचे के अनुरोधों का केवल एक विशिष्ट सबसेट पारित कर रहा है .. लेकिन ऐसा लगता है बस अपाचे को सब कुछ भेज रहा है, इसलिए आप सही हैं - बस एक प्रदर्शन बेकार है।
शेन झुंझलाना

हमारे मामले में, यह AWS ELB था।
अक्षय

1

इस समस्या का एक सामान्य स्रोत अपाचे के कई चल रहे उदाहरण हैं। कॉन्फ़िगरेशन परिवर्तन एक प्रक्रिया द्वारा उठाए जाते हैं जिसे आप (पुनः) शुरू करते हैं लेकिन अनुरोध एक पुरानी प्रक्रिया द्वारा प्रदान किया जाता है जो पुराने कॉन्फ़िगरेशन के साथ चल रहा है।

सेवा बंद करो:

service apache2 stop

जांचें कि क्या साइट अभी भी सुलभ है। यदि हाँ, तो आपने कारण की पहचान कर ली है।

अब दौड़ो

ps aux | grep apache

यह आपको अपाचे 2 प्रक्रिया और उनकी पीआईडी ​​चलाने की सूची देगा। उन सभी को मारें (ध्यान दें, यह आदेश अपाचे टॉमकैट की तरह उनके नाम / उपयोगकर्ता आदि में अपाचे के साथ असंबंधित प्रक्रियाओं को भी वापस कर सकता है, आप उन्हें नहीं मार सकते हैं।)

kill <pid>

पुन: ps aux को चलाएं और सुनिश्चित करें कि प्रक्रियाएं अब नहीं चल रही हैं।

यदि साइट सुलभ है तो फिर से जांचें। यह नहीं होना चाहिए।

अब अपाचे सेवा शुरू करें

service apache2 start

सत्यापित करें कि नया प्रमाण पत्र परोसा जा रहा है।

यदि आप प्रक्रियाओं को मारना नहीं चाहते हैं, तो आप सिस्टम को रिबूट कर सकते हैं। इसका प्रभाव समान होगा।

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