मैं Apache में TLS 1.0 और 1.1 को कैसे निष्क्रिय कर सकता हूँ?


31

क्या किसी को पता है कि मैं tls 1.0 और tls1.1 को अक्षम क्यों नहीं कर सकता, इसके लिए विन्यास को अद्यतन करके।

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

ऐसा करने के बाद, मैं अपाचे को फिर से लोड करता हूं मैं ssllabs या comodo ssl टूल का उपयोग करके ssl स्कैन करता हूं, और यह अभी भी कहता है कि tls 1.1 और 1.0 समर्थित हैं। मैं इनको दूर करना चाहूंगा?

जवाबों:


45

जब आपके पास कई TLS VirtualHosts हैं और सर्वर नाम इंडिकेशन (SNI) का उपयोग करते हैं, तो यह SSLProtocol प्रत्येक VirtualHost के लिए एक निर्देशन करने के लिए एक अनुमत सिंटैक्स है , लेकिन जब तक आपके पास IP VirtualHosts नहीं होता है तब तक SSLProtocolनिर्देशन की पहली घटना से सेटिंग पूरे सर्वर के लिए उपयोग की जाती है। और / या सभी नाम आधारित VirtualHosts TLS 1 का समर्थन करते हैं ।

इसलिए अपने मुख्य httpd.conf(और सभी शामिल स्निपेट उदाहरण के लिए conf.d/*.confऔर समान शामिल हैं) को SSLProtocolनिर्देश के अधिक घटनाओं के लिए जांचें ।

आप वाक्यविन्यास सही है, हालांकि मैं एज्रा के जवाब से सहमत हूं कि, जब आप allआशुलिपि का विस्तार करते हैं, तो आप इस पर थोड़ा सुधार कर सकते हैं:

 SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

बस का उपयोग करके:

 SSLProtocol TLSv1.2

यह सब समझ में आता है लेकिन मैंने वही किया जो आपने सुझाया था। मैं "SSLProtocol" के सभी संदर्भों के लिए अपनी / etc / httpd निर्देशिका grep'd। मैंने तब इसे SSLProtocol TLSv1.2 में अपडेट किया, फिर एक पुनरारंभ किया और यह अब भी दिखाता है कि tls 1.0 और 1.1 समर्थित है। मैंने इसे अपने एक अन्य सर्वर और उसी मुद्दे पर भी आजमाया। कोई विचार?
डेविड

1
गलत अलार्म, यह वास्तव में कोमोडो और ssllabs रिपोर्ट द्वारा कैश किया गया था। लगता है अब सही ढंग से रिपोर्टिंग हो रही है। धन्यवाद।
डेविड

3
मुझे लगता है कि मैं उन सभी प्रोटोकॉल के लिए "माइनस" का उपयोग करने की सलाह दूंगा जो आप नहीं चाहते हैं। अपाचे के भविष्य के संस्करणों ने "सभी" को अलग-अलग तरीके से परिभाषित किया क्योंकि नए मानक विकसित किए गए हैं और पुराने मानकों को असुरक्षित पाया गया है।
बोबपॉल

यदि आप Letsencrypt का उपयोग कर रहे हैं, तो जांचना न भूलें/etc/letsencrypt/options-ssl-apache.conf
Memes

9

आपके द्वारा निर्दिष्ट पर्याप्त है, यह किसी अन्य प्रोटोकॉल को नहीं दिखाना चाहिए। याद रखें कि SSLLABS हाल के परीक्षणों को कैश करता है। यद्यपि यह जानते हुए भी कि इसे परिभाषित करने वाले कोई अन्य प्रोटोकॉल नहीं हैं, जैसे आपने उद्देश्य पर विचार किया है।

किसी भी मामले में आप इसका उपयोग कर सकते हैं या बस:

SSLProtocol TLSv1.2

यदि आप निर्दिष्ट करते हैं तो क्या कोई अंतर है -ALL +TLSv1.2?
चेज़ी चेज़

"सभी" + SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2 तक फैलता है "। मुझे "-सभी" का उपयोग करने का कोई लाभ नहीं दिखता है। वास्तव में, प्रलेखन से यह स्पष्ट नहीं है कि "-all" वैध वाक्यविन्यास भी है। आप [+/-] प्रोटोकॉल कर सकते हैं लेकिन सभी में प्रोटोकॉल नहीं है: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

मैं इस मुद्दे के साथ भी संघर्ष कर रहा था, SSLProtocolनिर्देश के साथ कॉन्फ़िगर को संशोधित करना काम नहीं कर रहा था। मैंने अपने वर्चुअल होस्ट कॉन्फ़िगरेशन में निम्नलिखित को शामिल किया:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

जो पूरी तरह से काम किया। आप यहांSSLOpenSSLConfCmd निर्देश के बारे में अधिक पढ़ सकते हैं ।


4

Apache में TLS1.0 संस्करण अक्षम करें।

यदि आपके पास कई वर्चुअल होस्टिंग हैं, तो आपको सभी कॉन्फ़िगरेशन फ़ाइल को अपडेट करना होगा, अन्यथा, ssl.conf पर्याप्त है।

TSL समर्थन संस्करण की जाँच करने के लिए:

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

अपाचे कॉन्फ़िगरेशन फ़ाइल vi /etc/httpd/conf.d/web.confको संशोधित करें सभी TLS निकालें और केवल TLS1.2 की अनुमति दें।

SSLProtocol TLSv1.2

संशोधन के बाद मान्य करें।

# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.2:
# service httpd restart

-1

परिवर्तनों को प्रतिबिंबित करने के लिए आपको अपाचे सेवा को फिर से शुरू करने की आवश्यकता है।

sudo service apache2 restart

नीचे दिए गए कोड मेरे लिए ठीक काम करेंगे, आप अधिक जानकारी प्राप्त करने के लिए इस लेख को देख सकते हैं, https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/

<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key 
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>

यह कुछ भी अक्षम नहीं करेगा। यह केवल TLSv1.2 को सक्षम करेगा। और कैसे पुनरारंभ करें वितरण से वितरण में भिन्न होता है, और समान वितरण में संस्करणों के बीच भी।
गेराल्ड श्नाइडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.