Using Ubuntu 20.4 & Python Imaplib: Can I override ssl.SSLError: [SSL: DH_KEY_TOO_SMALL]?
Using Ubuntu 20.4 & Python Imaplib: Can I override ssl.SSLError: [SSL: DH_KEY_TOO_SMALL]?
自从 18.4 更新到 Ubuntu 20.4 后,我无法再访问其中一个
我的电子邮件地址
import imaplib
imap = imaplib.IMAP4_SSL('<my_email_server>')
中止并显示错误消息
ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1108)
在 Ubuntu 18.4 中可以正常工作。看来这是由较新的
OpenSSL 库。
在服务器端,我对此无能为力。
Python 是否有办法覆盖此设置以接受现有密钥?
更新:
我尝试按照此处所述弄乱 OpenSSL 设置:
- https://askubuntu.com/questions/1231844/ssl-sslerror-ssl-dh-key-too-small-dh-key-too-small-ssl-c1108
- https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level 没有成功。
这已在 this question
中解决
解决方法是添加
context.set_ciphers('DEFAULT@SECLEVEL=1')
到 ssl 上下文。并像这样登录
import imaplib
import ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.set_ciphers('DEFAULT@SECLEVEL=1')
imap = imaplib.IMAP4_SSL('MYSERVER_REMOVED>, ssl_context=context, port=993)
imap.login('<USER_REMOVED>','<PASSWORD_REMOVED>')
中还有一个更全局的方法
自从 18.4 更新到 Ubuntu 20.4 后,我无法再访问其中一个 我的电子邮件地址
import imaplib
imap = imaplib.IMAP4_SSL('<my_email_server>')
中止并显示错误消息
ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1108)
在 Ubuntu 18.4 中可以正常工作。看来这是由较新的 OpenSSL 库。
在服务器端,我对此无能为力。 Python 是否有办法覆盖此设置以接受现有密钥?
更新: 我尝试按照此处所述弄乱 OpenSSL 设置: - https://askubuntu.com/questions/1231844/ssl-sslerror-ssl-dh-key-too-small-dh-key-too-small-ssl-c1108 - https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level 没有成功。
这已在 this question
中解决解决方法是添加
context.set_ciphers('DEFAULT@SECLEVEL=1')
到 ssl 上下文。并像这样登录
import imaplib
import ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.set_ciphers('DEFAULT@SECLEVEL=1')
imap = imaplib.IMAP4_SSL('MYSERVER_REMOVED>, ssl_context=context, port=993)
imap.login('<USER_REMOVED>','<PASSWORD_REMOVED>')
中还有一个更全局的方法