TLS 1.0 存在漏洞,漏洞掃描會被判定為高風險漏洞
Web伺服器使用TLS1.0加密,TLS1.0已被認為不安全的加密演算法。 根據 PCI規範,SSL/TLS早期版本須於2018/6/30前禁止使用,並使用更安全的加密協定(TLS1.1以上,建議使用TLS1.2) 保護資訊
建議停用TLSV1、 SSLV2、 SSLV3、 TLSV1.1(可停可不停。
啟用TSLV1.2
所以要注意SSLV2 V3都要記得禁用,可以使用 SSL Server Test 檢查是否關閉或是Check SSLv2 and SSLv3
關閉方式檔案會在httpd/conf.d/ssl.conf這裡面(或是ubunut的 /etc/apache2/mods-available/ssl.conf) 找一下
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
改成上面這樣就可以了,改完重啟apache即可。
可以用下面python來測試看看,如果你的網站不對外的話
import ssl
import socket
# 檢查網站是否支援指定的 TLS 版本
def check_tls_versions(host, port=443):
# 定義各個 TLS 版本
tls_versions = {
ssl.PROTOCOL_TLSv1: "TLS 1.0",
ssl.PROTOCOL_TLSv1_1: "TLS 1.1",
ssl.PROTOCOL_TLSv1_2: "TLS 1.2",
ssl.PROTOCOL_TLS: "TLS 1.3 (Auto)"
}
supported_versions = []
for version, version_name in tls_versions.items():
try:
# 創建一個 SSL 上下文來指定要使用的 TLS 版本
context = ssl.SSLContext(version)
context.set_ciphers('ALL')
# 嘗試連接網站
with socket.create_connection((host, port)) as sock:
with context.wrap_socket(sock, server_hostname=host) as ssock:
# 如果連接成功,則該版本被支持
supported_versions.append(version_name)
print(f"
{version_name} 有支援.")
except ssl.SSLError:
print(f"
{version_name} 不支援")
except Exception as e:
print(f"
Error with {version_name}: {e}")
if not supported_versions:
print("
No supported TLS versions found.")
else:
print(f"
Supported TLS versions: {', '.join(supported_versions)}")
# 輸入網站域名或IP地址
host = input("Enter the website host to check for supported TLS versions (e.g., example.com): ")
# 開始檢查
check_tls_versions(host)