问题标签 [starttls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
8872 浏览

php - cakephp 2.0 smtp 电子邮件

我正在尝试使用 CakePhp 2.0 发送电子邮件。在我的控制器中,我使用此代码(我知道这很好,我从食谱中获取):

app/config/email.php我有这个配置:

问题是服务器回答:

帐户名正确,密码也正确。配置在 Thunderbird 中加载时有效,与 smtp 服务器的连接设置为:

服务器名称:mail.myServer.com
端口:587
连接安全:STARTTLS
身份验证:普通密码
用户名:mYaccount

0 投票
1 回答
2823 浏览

c - 如何从 C 发送电子邮件

如何使用 C 发送电子邮件?

找了几天,终于决定去问问。

我尝试了这个http://www.muquit.com/muquit/software/mailsend/mailsend.html但无法让它工作,因为它无法识别 -starttls 命令。我会提到我的主要目标是 gmail 服务器。

提前致谢!

0 投票
1 回答
109010 浏览

ldap - 为什么通过 ssl/tls 的 ldapsearch 不起作用?

我正在尝试通过 SSL/TLS 连接使用 ldapsearch,但它不起作用:

错误消息没有给出足够的提示说明出了什么问题。相比之下,简单的绑定和搜索在 389 端口上运行良好,没有任何问题。

有什么提示吗?

PS这是我的ldap.conf:

我什至尝试更改TLS_REQCERTnever,但它仍然不起作用。:-(

0 投票
0 回答
1879 浏览

perl - Net::LDAP::Bind 中的错误文件描述符

我正在与 Net::LDAP 建立以下 LDAP 连接:

这将起作用,甚至让我稍后进行查询以检查用户的凭据。但是如果我尝试验证服务器证书:

它将成功建立连接并验证服务器证书,但在尝试绑定操作时,我得到以下 LDAP 消息参数:

我很惊讶,因为结果代码 82 被定义为 LDAP_LOCAL_ERROR,但所有证书位似乎都有效。如果我将“cafile”参数更改为错误值,它将失败并显示“I/O 错误连接由对等方重置”错误消息。

有任何想法吗?提前致谢。

更新:我刚刚意识到证书验证不成功。LDAP 服务器使用的证书不是我被告知的证书。我意识到通过使用 openssl 来监控握手过程:

在那里你可以看到服务器正在有效使用的证书。

0 投票
2 回答
893 浏览

haskell - 使用 tls-extra 进行简单的 smtp

我正在尝试编写一个简单的脚本来通过我的 gmail 帐户发送邮件。但我是初学者,所以没那么简单。我尝试了谷歌,但除了hackage,根本没有帮助或示例。

问题是我没有找到使用 tls-extra(或 tls)来启动 STARTTLS 交换的方法。

好的,代码如下:

另一件事是我使用监听功能来了解发生了什么。但我不知道如何将它与 write 一起使用。也就是说,我希望能够在发送一些数据时看到服务器端发生了什么。

我发现了两个可以解决我的问题的功能:

第一个用于 tls,第二个用于同时发送和接收。但似乎无法让它们工作。

我希望我不会在这里弄乱,任何帮助将不胜感激。

PS:英语不是我的母语。

编辑:所以,我取得了一些进展。

不过,我不知道如何协商 tls 握手。

我不得不说,我对没有答案感到非常惊讶。其他几次我遇到了问题,社区很快就提供了帮助。但这似乎并不感兴趣(只是一种说法)。在 SO 或什至在#haskell 或developpez.com。

无论如何,一些关于谷歌和 tls 的指针将受到欢迎。我查看了 msmtp 客户端代码,但坦率地说,我没有所需的级别。

0 投票
0 回答
2520 浏览

python - 在 SSL 中包装现有套接字 - Python

我在 Python 程序中将现有的套接字连接包装在 ssl 中时遇到了一些问题。本质上,它是 STARTTLS 的实现,即当前连接的客户端可以发出 STARTTLS 命令,服务器将保护连接。

这是我正在努力解决的代码部分:

当我使用 openssl 连接时,我得到以下信息:

我通过运行这个来连接:

将 openssl 命令更改为使用-ssl2-no_ssl2-tls1没有帮助。我也尝试过添加server_side=True to wrap_socket(),但只会导致 ssl 握手超时。

我应该注意,wrap_socket()当连接从头到尾加密时工作正常,而不是当我尝试在 STARTTLS 上下文中使用它时。

Python 版本是 2.4.3

在此先感谢,我感谢任何指示或帮助。

0 投票
1 回答
76 浏览

security - 安全层字节精度?

XMPP RFC中,有两个MUST指令声明用于 STARTTLS 和 SASL 的 XML 不得包含任何空格,因为该规范声明为“安全层字节精度”。那是什么?


来自 RFC 的相关摘要:

...

在 STARTTLS 协商期间,实体不得发送任何空格作为 XML 元素之间的分隔符(即,从发送时由 'urn:ietf:params:xml:ns:xmpp-tls' 命名空间限定的第一级元素的最后一个字符由发起实体,直到接收实体发送的由 'urn:ietf:params:xml:ns:xmpp-tls' 命名空间限定的第一级元素的最后一个字符)。此禁止有助于确保适当的安全层字节精度。

... 在 SASL 协商期间,实体不得发送任何空格作为 XML 元素之间的分隔符(即,从由 'urn:ietf:params:xml:ns:xmpp-sasl' 限定的第一级元素的最后一个字符开始)由发起实体发送的命名空间,直到接收实体发送的由 'urn:ietf:params:xml:ns:xmpp-sasl' 命名空间限定的第一级元素的最后一个字符)。此禁止有助于确保适当的安全层字节精度。

0 投票
3 回答
18004 浏览

php - 发送 AUTH LOGIN 命令失败。错误:530 5.7.0 必须先发出 STARTTLS 命令

我有以下代码

但是当代码执行时,我收到以下错误

发送 AUTH LOGIN 命令失败。错误:530 5.7.0 必须先发出 STARTTLS 命令。qd9sm8462833pbb.31

我用过

在我的控制器的构造函数中。但我无法从本地主机发送电子邮件。发送电子邮件的解决方案是什么?我需要做哪些改变?

0 投票
3 回答
11328 浏览

php - 如何验证 TLS SMTP 证书在 PHP 中是否有效?

为了防止中间人攻击(伪装成其他人的服务器),我想验证我通过 SSL 连接的 SMTP 服务器是否具有有效的 SSL 证书,证明它就是我认为的那个人。

例如,在端口 25 上连接到 SMTP 服务器后,我可以像这样切换到安全连接:

但是,没有提到 PHP 在哪里检查 SSL 证书。PHP 是否有内置的根 CA 列表?它只是接受什么吗?

验证证书是否有效以及 SMTP 服务器确实是我认为的身份的正确方法是什么?

更新

根据PHP.net 上的这个评论,我似乎可以使用一些流选项进行 SSL 检查。最好的部分是stream_context_set_option接受上下文或流资源。因此,在 TCP 连接的某个时刻,您可以使用CA cert bundle切换到 SSL 。

此外,请参阅扩展SSL 选项的上下文选项和参数

但是,虽然这现在解决了主要问题 - 我如何验证有效证书实际上属于我正在连接的域/IP?

换句话说,我连接的服务器的证书也可能有一个有效的证书 - 但我怎么知道它对“example.com”有效,而不是另一个使用有效证书的服务器像“example.com”一样?

更新 2

您似乎可以使用 Steam 上下文参数捕获 SSL 证书并使用openssl_x509_parse对其进行解析。

0 投票
2 回答
3509 浏览

email - 连接到 SMTP 服务器时,我应该先尝试 SSL 还是 TCP/STARTTLS?

SMTP 允许通过端口 25 进行未加密通信。对于某些服务器(例如 Google 的 MX 服务器),我可以在建立初始未加密连接后使用 STARTTLS 切换到 TLS 连接。

但是,我也想支持直接的 SSL 连接,我想知道大多数邮件服务器是更喜欢从 SSL 开始还是从 TCP 开始,然后在建立连接后转移到 TLS。