Bagaimana saya bisa menonaktifkan TLS 1.0 dan 1.1 di apache?

31

Adakah yang tahu mengapa saya tidak dapat menonaktifkan tls 1.0 dan tls1.1 dengan memperbarui konfigurasi ini.

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

Setelah melakukan ini, saya memuat ulang apache. Saya melakukan pemindaian ssl menggunakan ssllab atau alat ssl comodo, dan masih mengatakan tls 1.1 dan 1.0 didukung. Saya ingin menghapus ini?

David
sumber

Jawaban:

45

Ketika Anda memiliki beberapa TLH VirtualHosts dan menggunakan Indikasi Nama Server (SNI), ini merupakan sintaks yang diizinkan untuk memiliki SSLProtocol arahan untuk setiap VirtualHost, tetapi kecuali jika Anda memiliki IP VirtualHosts dalam praktiknya pengaturan dari SSLProtocoldirektif kemunculan direktif digunakan untuk seluruh server. dan / atau semua VirtualHost berbasis nama yang mendukung TLS 1 .

Jadi periksalah main Anda httpd.conf(dan semua cuplikan yang disertakan dari misalnya conf.d/*.confdan yang serupa) untuk lebih banyak kemunculan SSLProtocolarahan.

Sintaks Anda benar, walaupun saya setuju dengan jawaban ezra-s bahwa, ketika Anda memperluas allsteno, Anda dapat sedikit memperbaiki:

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

hanya dengan menggunakan:

 SSLProtocol TLSv1.2
HBruijn
sumber
Ini semua masuk akal namun saya melakukan apa yang Anda rekomendasikan. Saya menerima direktori / etc / httpd saya untuk semua referensi "SSLProtocol". Saya kemudian memperbarui ke SSLProtocol TLSv1.2, kemudian melakukan restart dan masih menunjukkan bahwa tls 1.0 dan 1.1 didukung. Saya juga mencobanya di salah satu server saya dan masalah yang sama. Ada ide?
David
1
Alarm salah, ini memang di-cache oleh laporan comodo dan ssllab. Tampaknya melaporkan dengan benar sekarang. Terima kasih.
David
3
Saya pikir saya akan merekomendasikan menggunakan "semua" dengan minus untuk protokol yang tidak Anda inginkan. Versi apache di masa depan mendefinisikan "semua" secara berbeda ketika standar baru dikembangkan dan standar lama ditemukan tidak aman.
bobpaul
Jika Anda menggunakan Letsencrypt, jangan lupa untuk memeriksa/etc/letsencrypt/options-ssl-apache.conf
Memes
9

yang Anda tentukan sudah cukup, seharusnya tidak menampilkan protokol lain. Ingat SSLLABS membuat cache tes baru-baru ini. Meskipun mengetahui bahwa tidak ada protokol lain yang mendefinisikannya seperti yang Anda lakukan agak berbelit-belit dengan sengaja.

Dalam hal apa pun Anda dapat menggunakannya atau hanya:

SSLProtocol TLSv1.2
ezra-s
sumber
Apakah ada perbedaan jika Anda menentukan -ALL +TLSv1.2?
Chazy Chaz
"Semua" berkembang menjadi "+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2". Saya tidak melihat manfaat menggunakan "-All". Sebenarnya, dari dokumentasi itu tidak jelas bahwa "-all" bahkan sintaks yang valid. Anda dapat melakukan protokol [+/-] tetapi semua bukan protokol: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul
6

Saya juga berjuang dengan masalah ini, memodifikasi konfigurasi dengan SSLProtocolarahan tidak berfungsi. Saya akhirnya menambahkan yang berikut ini ke konfigurasi virtual host saya:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Itu bekerja dengan sempurna. Anda dapat membaca lebih lanjut tentang SSLOpenSSLConfCmdarahan di sini .

Shultisj
sumber
4

Nonaktifkan versi TLS1.0 di Apache.

Jika Anda memiliki beberapa hosting virtual maka Anda harus memperbarui semua file konfigurasi, jika tidak, ssl.conf sudah cukup.

Untuk memeriksa versi pendukung TSL:

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

Ubah file konfigurasi Apache, vi /etc/httpd/conf.d/web.confhapus semua TLS dan hanya izinkan TLS1.2.

SSLProtocol TLSv1.2

Validasi setelah modifikasi.

# 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
Narendra Kumar
sumber
-1

Anda harus memulai kembali layanan Apache menggunakan perintah berikut untuk mencerminkan perubahan.

sudo service apache2 restart

Kode di bawah ini akan berfungsi dengan baik untuk saya, Anda dapat memeriksa artikel ini untuk mendapatkan rincian lebih lanjut, 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>
Karthik
sumber
Ini tidak akan menonaktifkan apa pun. Ini hanya akan mengaktifkan TLSv1.2. Dan cara me-restart bervariasi dari distribusi ke distribusi, dan bahkan antara versi dalam distribusi yang sama.
Gerald Schneider