Làm cách nào tôi có thể tắt TLS 1.0 và 1.1 trong apache?


31

Có ai biết tại sao tôi không thể vô hiệu hóa tls 1.0 và tls1.1 bằng cách cập nhật cấu hình này không.

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

Sau khi làm điều này, tôi tải lại apache Tôi thực hiện quét ssl bằng công cụ ssllabs hoặc comodo ssl, và nó vẫn nói rằng tls 1.1 và 1.0 được hỗ trợ. Tôi muốn loại bỏ những?

Câu trả lời:


45

Khi bạn có nhiều Máy chủ ảo TLS và sử dụng Chỉ định tên máy chủ (SNI), đó là một cú pháp được phép để có một lệnh SSLProtocol cho mỗi Virtualhost, nhưng trừ khi bạn có IP Virtualhost trong thực tế, các cài đặt từ lần xuất hiện đầu tiên của lệnh SSLProtocolnày được sử dụng cho toàn bộ máy chủ và / hoặc tất cả các Virtualhost dựa trên tên hỗ trợ TLS 1 .

Vì vậy, hãy kiểm tra chính của bạn httpd.conf(và tất cả các đoạn được bao gồm từ ví dụ conf.d/*.confvà bao gồm tương tự) để biết thêm các lần xuất hiện của lệnh SSLProtocol.

Cú pháp của bạn là chính xác, mặc dù tôi đồng ý với câu trả lời của ezra-s rằng, khi bạn mở rộng tốc allký, bạn có thể cải thiện đôi chút về:

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

bằng cách sử dụng đơn giản:

 SSLProtocol TLSv1.2

Tất cả điều này có ý nghĩa tuy nhiên tôi đã làm những gì bạn đề nghị. Tôi grep'd thư mục / etc / httpd của tôi cho tất cả các tham chiếu của "SSLProtocol". Sau đó tôi đã cập nhật nó lên SSLProtocol TLSv1.2, sau đó thực hiện khởi động lại và nó vẫn cho thấy các tls 1.0 và 1.1 được hỗ trợ. Tôi cũng đã thử nó trên một máy chủ khác và cùng một vấn đề. Có ý kiến ​​gì không?
David

1
Báo động sai, điều này thực sự được lưu trữ bởi các báo cáo comodo và ssllabs. Nó dường như được báo cáo chính xác bây giờ. Cảm ơn bạn.
David

3
Tôi nghĩ rằng tôi sẽ khuyên bạn nên sử dụng "tất cả" với điểm trừ cho các giao thức bạn không muốn. Các phiên bản tương lai của apache định nghĩa "tất cả" khác nhau khi các tiêu chuẩn mới được phát triển và các tiêu chuẩn cũ được coi là không an toàn.
bobpaul

nếu bạn đang sử dụng Letsencrypt, đừng quên kiểm tra/etc/letsencrypt/options-ssl-apache.conf
Memes

9

mà bạn đã chỉ định là đủ, nó không nên hiển thị bất kỳ giao thức nào khác. Hãy nhớ SSLLABS lưu trữ các bài kiểm tra gần đây. Mặc dù biết rằng không có giao thức nào khác xác định nó giống như bạn đã làm là có mục đích.

Trong mọi trường hợp, bạn có thể sử dụng hoặc đơn giản là:

SSLProtocol TLSv1.2

Có sự khác biệt nào nếu bạn chỉ định -ALL +TLSv1.2?
Chazy Chaz

"Tất cả" mở rộng thành "+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2". Tôi không thấy lợi ích khi sử dụng "-Tất cả". Trên thực tế, từ tài liệu không rõ ràng "-all" thậm chí là cú pháp hợp lệ. Bạn có thể thực hiện giao thức [+/-] nhưng tất cả không phải là giao thức: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

Tôi cũng đang vật lộn với vấn đề này, sửa đổi cấu hình với lệnh SSLProtocolkhông hoạt động. Cuối cùng tôi đã thêm phần sau vào cấu hình máy chủ ảo của mình:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Mà làm việc hoàn hảo. Bạn có thể đọc thêm về SSLOpenSSLConfCmdchỉ thị ở đây .


4

Vô hiệu hóa phiên bản TLS1.0 trong Apache.

Nếu bạn có nhiều lưu trữ ảo thì bạn phải cập nhật tất cả các tệp cấu hình, nếu không, ssl.conf là đủ.

Để kiểm tra phiên bản hỗ trợ TSL:

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

Sửa đổi tệp cấu hình Apache vi /etc/httpd/conf.d/web.confloại bỏ tất cả TLS và chỉ cho phép TLS1.2.

SSLProtocol TLSv1.2

Xác nhận sau khi sửa đổi.

# 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

Bạn cần khởi động lại dịch vụ Apache bằng lệnh sau để phản ánh các thay đổi.

sudo service apache2 restart

Mã bên dưới sẽ hoạt động tốt với tôi, bạn có thể kiểm tra bài viết này để biết thêm chi tiết, https://karthikekblog.com/how-to-disable-enable-ssl-tls-prot Protocol-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>

Điều này sẽ không vô hiệu hóa bất cứ điều gì. Nó sẽ chỉ kích hoạt TLSv1.2. Và cách khởi động lại khác nhau từ phân phối đến phân phối và thậm chí giữa các phiên bản trong cùng một phân phối.
Gerald Schneider
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.