我如何使用 Certificate.loadPem 发送 post 而无需验证?

how do i send post without verification using Certificate.loadPem?

我正在尝试向应用了 SSL 的守护程序发送 post 请求。我想同时通过 SSL 验证和使用 SSL 加密,这是我发现的:

但我在 twisted agent.request.

中找不到类似的

使用 twisted.web.client.Agent.__init__contextFactory 参数控制 TLS 行为。

此参数的值应提供 twisted.web.iweb.IPolicyForHTTPS。该接口定义了一个方法(creatorForNetloc),用于建立TLS连接。

Twisted 包含此接口的一个独特实现,它实现了与大多数现代网络浏览器所使用的策略类似的策略。

您可以创建自己的实现来执行其他操作,例如忽略证书验证错误 - 即使在 per-host 基础上 - 或者添加自定义信任根之类的操作,这样您仍然可以验证证书而不需要它由证书颁发机构颁发。

twisted.internet.ssl.optionsForClientTLS 对于在 creatorForNetloc 中实现某些行为很有用 - 但是它不支持完全忽略所有验证错误。为此,您可能会受益于使用 twisted.internet.ssl.ClientTLSOptions,它接受控制其大部分行为的任意 OpenSSL.SSL.Context 实例。

OpenSSL.SSL.Context 让您可以控制在将 TLS 与 Twisted 结合使用时可以控制的几乎所有 OpenSSL 功能 - 包括忽略验证错误,如果这是您真正需要的。

最直接的方法是使用 Context.set_verify 和适当定义的函数。