TLS 1.0 ve 1.1'i apache'de nasıl devre dışı bırakabilirim?


31

Yapılandırmayı güncelleyerek tls 1.0 ve tls1.1'i neden devre dışı bırakamadığımı bilen var mı?

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

Bunu yaptıktan sonra, apache'yi yeniden yüklüyorum, ssllabs veya comodo ssl aracını kullanarak bir ssl taraması yapıyorum ve hala tls 1.1 ve 1.0'ın desteklendiğini söylüyor. Bunları kaldırmak ister misiniz?

Yanıtlar:


45

Birden fazla TLS VirtualHosts'unuz varsa ve Sunucu Adı Göstergesini (SNI) kullandığınızda, SSLProtocol her VirtualHost için bir yönergeye sahip olmasına izin verilen bir sözdizimine sahip olursunuz, ancak IP VirtualHosts'a sahip değilseniz, SSLProtocolyönergenin ilk oluşumundan itibaren ayarlar tüm sunucu için kullanılır. ve / veya TLS 1'i destekleyen tüm isme dayalı VirtualHosts .

Bu nedenle , direktifin daha fazla tekrarlanması için ana sayfanızı httpd.conf(ve tüm dahil edilmiş snippet'leri (örneğin conf.d/*.confve benzerleri içerenleri) kontrol edin SSLProtocol.

Siz sözdizimi doğrudur, ezra-s 'in cevabını kabul ediyorum, buna rağmen, stenoyu genişlettiğinizde, allaşağıdakileri biraz geliştirebilirsiniz:

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

sadece kullanarak:

 SSLProtocol TLSv1.2

Bunların hepsi mantıklı geliyor ancak önerdiğiniz şeyi yaptım. / Etc / httpd dizinini "SSLProtocol" yazısının tüm referansları için grep'dim. Daha sonra SSLProtocol TLSv1.2'ye güncelledikten sonra yeniden başlattım ve hala 1.0 ve 1.1'in desteklendiğini gösteriyor. Aynı zamanda sunucularımdan birinde de aynı şekilde denedim. Herhangi bir fikir?
David,

1
Yanlış alarm, bu gerçekten comodo ve ssllabs raporları tarafından önbelleklendi. Şimdi doğru rapor ediyor gibi görünüyor. Teşekkür ederim.
David,

3
İstemediğiniz protokoller için "all" eksi ile kullanmanızı öneririm. Apache'nin gelecekteki sürümleri, yeni standartlar geliştirildiğinden ve eski standartların güvensiz olduğu tespit edildiğinden "hepsini" farklı şekilde tanımlamaktadır.
bobpaul

Eğer Letsencrypt kullanıyorsanız, kontrol etmeyi unutmayın/etc/letsencrypt/options-ssl-apache.conf
Memler

9

Belirttiğiniz yeterlidir, başka protokoller göstermemelidir. SSLLABS'ın son testleri önbelleğe aldığını unutmayın. Her ne kadar sizin gibi tanımlayan başka protokoller olmadığını bilmek de bilerek yapılanmış gibi.

Her durumda, bunu kullanabilir veya basitçe:

SSLProtocol TLSv1.2

Belirtirseniz herhangi bir fark var mı -ALL +TLSv1.2?
Chazy Chaz

"Tüm", "+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2" olarak genişler. "-All" kullanmanın bir yararı görmüyorum. Aslında, belgelerde "-all" ifadesinin geçerli bir sözdizimi olduğu açık değildir. [+/-] protokolünü yapabilirsiniz ancak hepsi bir protokol değildir: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

Ben de bu sorunla mücadele ediyordum, SSLProtocolyönergeyle yapılandırmaları değiştirmek işe yaramadı. Sanal ana bilgisayar konfigürasyonuma aşağıdakileri ekleyerek bitirdim:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Hangi mükemmel çalıştı. Sen hakkında daha fazla bilgi edinebilirsiniz SSLOpenSSLConfCmddirektifi burada .


4

Apache'de TLS1.0 sürümünü devre dışı bırakın.

Birden fazla sanal barındırma sunucunuz varsa, tüm yapılandırma dosyalarını güncellemeniz gerekir, aksi takdirde ssl.conf yeterlidir.

TSL'yi destekleyen sürümü kontrol etmek için:

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

Apache yapılandırma dosyasını değiştirin vi /etc/httpd/conf.d/web.conf tüm TLS'yi kaldırın ve sadece TLS1.2'ye izin verin.

SSLProtocol TLSv1.2

Değişiklikten sonra doğrulayın.

# 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

Değişiklikleri yansıtmak için aşağıdaki komutu kullanarak Apache hizmetini yeniden başlatmanız gerekir.

sudo service apache2 restart

Aşağıdaki kod benim için iyi çalışacaktır, daha fazla bilgi almak için bu makaleyi inceleyebilirsiniz, 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>

Bu hiçbir şeyi devre dışı bırakmaz. Yalnızca TLSv1.2'yi etkinleştirir. Ve nasıl yeniden başlatılacağı dağıtımdan dağıtıma ve hatta aynı dağıtımdaki sürümler arasında değişir.
Gerald Schneider
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.