我需要連接到使用 TLS 1.0 的舊 FTP 服務器。我正在嘗試在我的容器中啟用 TLS 1.0 支持,但沒有運氣。
環境:docker
圖片:python:latest
到目前為止我做了什么:
改變
MinProtocol以TLS_v1.0在/etc/ssl/openssl.cnf: https://github.com/SoftEtherVPN/SoftEtherVPN/issues/1358在我的代碼中設定
ssl_version為PROTOCOL_TLSv1:
#!/usr/local/bin/python
import ftplib
import ssl
from ftplib import FTP_TLS
ftplib.FTP_TLS.ssl_version = ssl.PROTOCOL_TLSv1
ftp = FTP_TLS('...')
ftp.login('...', '...')
ftp.retrlines('LIST')
ftp.quit()
我收到了這個錯誤:
File "/usr/local/lib/python3.10/ftplib.py", line 745, in login
self.auth()
File "/usr/local/lib/python3.10/ftplib.py", line 756, in auth
self.sock = self.context.wrap_socket(self.sock, server_hostname=self.host)
File "/usr/local/lib/python3.10/ssl.py", line 512, in wrap_socket
return self.sslsocket_class._create(
File "/usr/local/lib/python3.10/ssl.py", line 1070, in _create
self.do_handshake()
File "/usr/local/lib/python3.10/ssl.py", line 1341, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:997)
我應該如何(如果有的話)在 python 容器中使用較舊的 TLS 版本?
uj5u.com熱心網友回復:
...沒有可用的密碼
這不是 TLS 版本的問題,而是可用密碼的問題。因此,僅設定較低的協議版本無濟于事。目前尚不清楚服務器支持哪些密碼,以及這些密碼是否已編譯到您從 Python 使用的 OpenSSL 版本中。例如 RC4 通常不再編譯。
但很可能只是默認情況下禁用了必要的密碼,這通常是默認設定的更高安全級別的情況。在這種情況下,它可能有助于降低安全級別,這也照顧 TLS 版本
#!/usr/local/bin/python
import ftplib
import ssl
from ftplib import FTP_TLS
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT:@SECLEVEL=1') # enables weaker ciphers and protocols
ftp = FTP_TLS(context=ctx)
ftp.set_debuglevel(10)
ftp.connect('...',21)
ftp.login('...','...')
ftp.quit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/405222.html
標籤:
上一篇:CXF:PKIX路徑構建失敗:sun.security.provider.certpath.SunCertPathBuilderException:無法找到請求目標的有效證書路徑
