gpt4 book ai didi

如果客户端需要,python 启用 ssl

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:30 26 4
gpt4 key购买 nike

有没有办法知道客户端是否希望服务器启用 SSL?

我正在构建一个小型 SMTP 服务器并在 465 上实现了 SSL,但一些客户端不希望使用 SSL,因此显然连接失败。

有没有可能以任何方式告诉它?

最佳答案

服务器没有干净的方法来检测客户端是否希望在连接开始时使用 SSL/TLS。事实上,如果希望服务器先发送数据(如 SMTP 的情况:服务器在客户端发送任何数据之前发送一个横幅),则根本没有办法做到这一点。

这就是为什么通常以这两种方式之一使用 SSL/TLS 的原因:

  • 为协议(protocol)的 SSL/TLS 版本指定了一个新的端口号。例如,HTTP(端口 443 而不是端口 80)、IMAP(端口 993 而不是端口 143)、SMTP(端口 465 而不是 25 或 587)。如果服务器接受新端口上的连接,它就会知道立即使用 SSL/TLS。
  • > STARTTLS :服务器和客户端首先讨论协议(protocol)的非 SSL/TLS 版本,但服务器在其服务功能声明中指示 STARTTLS。客户接受报价并提出要求。服务器和客户端现在都使用 SSL/TLS 重新启动协议(protocol)。

STARTTLS 的效率有点低,因为服务器和客户端之间的非 SSL/TLS 对话首先发生(使用多个网络往返)并且它不适用于所有协议(protocol)(HTTP 不支持它) ),但如果可用,它通常是首选,因为它可以更轻松地进行电子邮件设置的自动配置(无需探测一堆可能的端口并选择最佳端口)。

端口 465 是第一种解决方案的示例:选择一个新端口并在其上运行 SSL/TLS。这意味着服务器和客户端都应该立即使用 SSL/TLS 在该端口上进行通信。

如果您看到客户端试图在端口 465 上使用纯文本 SMTP,则这些客户端已损坏。您真的无法解决这些问题。客户端有严重的错误,应该修复...

此外,对于 SMTP,you really need to be using STARTTLS, not SMTP over SSL/TLS on port 465 .

关于如果客户端需要,python 启用 ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com