導語:
ssl 3.0被認為是不安全的,原因在於它使用RC4加密或CBC模式加密,而前者易受偏差攻擊,後者會導致POODLE攻擊。
在生產環境中,經常會掃描到此漏洞,解決方法是apache服務端停用該協定。
(學習影片分享:程式設計影片)
一、環境準備
理解SSL和TLS:http在資料傳輸過程中使用的是明文,為了解決這個問題https應運而生,ssl就是基於https的加密協議。當ssl更新到3.0版本後,IETF(互聯網工程任務組)對ssl3.0進行了標準化,標準化後的協議就是TLS1.0,所以說TLS是SSL的標準化後的產物,TLS目前有1.0 ,1.1, 1.2三個版本,預設使用1.0,到此我們對ssl和TLS有了一個基本的了解。
web伺服器支援TLS1.2需要的伺服器運作環境:
Apache对应版本应>=2.2.23; OpenSSL对应版本应>= 1.0.1
查看目前伺服器apache版本
[root@host-192-168-149-10 conf.d]# httpd -v Server version: Apache/2.4.29 (Unix) Server built: Jan 22 2018 16:51:25
openssl版本
[root@host-192-168-149-10 conf.d]# openssl version OpenSSL 1.0.1e-fips 11 Feb 2013
二、環境整改
測試存在安全漏洞的域名,如下透過sslv3存取可以正常傳回訊息,攻擊者可能會利用此漏洞危害系統。
[root@host-192-168-149-10 conf.d]# curl --sslv3 https://cs.df230.xyz/test/api/configs/fedch/all { "overdue" : false, "success" : true, "errorCode" : null, "message" : "请求成功", "data" : { "global" : { "copyright" : "功能清单", }
apache預設支援SSLv3,TLSv1,TLSv1.1,TLSv1.2協定
(註:ssl功能需要在http.conf中啟用LoadModule ssl_module modules/mod_ssl.so)
apache預設配置如下
SSLProtocol All -SSLv2
進入目錄/usr/local/apache/conf/extra
vi修改ssl.conf依照如下配置,目的是關閉sslv3協定
SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLProtocol TLSv1.2
配置保存後,需要service httpd restart重啟apache使配置生效
再次測試sslv3訪問,無法訪問
[root@host-192-168-149-10 conf.d]# curl --sslv3 https://cs.df230.xyz/test/api/configs/fedch/al curl: (35) SSL connect error
透過google瀏覽器F12進入開發模式,可以看到瀏覽器存取目前網域使用的ssl協定為TLS1.2。
至此,漏洞整改完成,so easy!
相關推薦:apache教學
以上是apache禁用sslv3的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!