扭曲的listenSSL虚拟主机

2023-12-09

目前使用一个非常简单的 TwistedNameVirtualHost加上一些 JSON 配置文件,可以在一个文件中提供真正基本的内容Site目的。 Twisted 提供的资源都是 Flask 中构建的 WSGI 对象。

我想知道如何用一个来包装与这些域的连接SSLContext, since reactor.listenSSL仅需要一个上下文,如何为每个域/子域提供自己的 crt/密钥对并不明显。有没有办法为每个不需要代理的域设置带有 ssl 的命名虚拟主机?我找不到任何使用 Twisted 的示例NameVirtualHost使用 SSL,我唯一能做的就是挂接在只有一个域上下文的端口 443 上侦听的反应器?

我想知道是否有人尝试过这个?

我的简单服务器没有任何 SSL 处理:

https://github.com/DeaconDesperado/twsrv/blob/master/service.py


TLS(取代 SSL 的现代协议的名称)直到最近才支持您正在寻找的功能。该功能称为服务器名称指示 (or SNI)。它受到现代平台上的现代浏览器的支持,但不支持一些较旧但仍然广泛使用的平台(有关支持的浏览器列表,请参阅维基百科页面)。

Twisted 对此没有特定的内置支持。然而,它不需要任何。 Twisted 的 SSL 支持所基于的 pyOpenSSL 确实支持 SNI。

The set_tlsext_servername_callbackpyOpenSSL API 为您提供了构建您想要的行为的基本机制。这允许您定义一个回调,该回调有权访问客户端请求的服务器名称。此时,您可以指定要用于连接的密钥/证书对。你可以找到演示此 API 用法的示例在 pyOpenSSL 的示例目录中。

以下是该示例的摘录,可为您提供要点:

def pick_certificate(connection):
    try:
        key, cert = certificates[connection.get_servername()]
    except KeyError:
        pass
    else:
        new_context = Context(TLSv1_METHOD)
        new_context.use_privatekey(key)
        new_context.use_certificate(cert)
        connection.set_context(new_context)

server_context = Context(TLSv1_METHOD)
server_context.set_tlsext_servername_callback(pick_certificate)

您可以将此方法合并到自定义上下文工厂中,然后将该上下文工厂提供给listenSSL call.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扭曲的listenSSL虚拟主机 的相关文章

  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • IIS 8 HTTPS/需要 SSL 导致超时错误

    尝试通过 IIS 8 通过 SSL 发布网站 但出现超时错误 任何帮助表示赞赏 采取的步骤 已验证该网站可以通过 HTTP 访问 http xxx xxx xxx xxx有效 此时使用 IP 地址 如果重要的话 IIS gt 服务器证书 g
  • .NET-MVC - 通过 SSL 重写 URL + 某些 URL?

    我有一个运行 IIS 6 NET MVC 和单个域名的网络服务器 该网站使用 URL 重写来生成如下 URL 域名 com controller action 我愿意强行一 1 个控制器 to use SSL 其他的应该无需 SSL 即可工
  • 如何使用 net/http 验证 ruby​​ 中的 SSL 证书链

    我如何验证网站的证书 例如https processing ukash com https processing ukash com 在 ruby 中使用 net http https Net HTTP new processing uka
  • 如何在android网络库(ION)中使用自签名SSL?

    使用此网络库 https github com koush ion https github com koush ion 由于当前状态是开发 我想使用自签名 SSL 证书 图书馆论坛有一些讨论 https github com koush
  • 出站连接的 SSL 配置在 websphere-liberty 17.0.0.2 中不起作用

    我正在尝试将 websphere liberty 服务器配置为对所有出站连接 实际上是 REST 调用 使用默认密钥库和 trustore 对于入站连接使用自定义密钥和信任库 但当尝试调用外部 REST 服务时 它会失败并出现 SSLHan
  • 使用 PEM 证书的 HTTPS 连接

    我正在尝试使用 PEM 证书发布 HTTPS 请求 如下所示 import httplib CERT FILE path certif pem conn httplib HTTPSConnection 10 10 10 10 443 cer
  • 应用程序传输安全已禁用,但仍然出现 SSL 握手错误

    我在通过 HTTPS SSL 连接到 API 时遇到问题 我已经使用下面的字典完全禁用了应用程序传输安全性 ATS 尽管 SSL 证书通过了 NSCURL 的所有测试
  • SSL 速度:128 位与 256 位

    我决定使用 SSL 加密我的整个网站 即使实际上只有部分网站是必要的 最终结果是该网站现在有点慢 所以 我的问题是 我是否应该只加密网站的会员部分 请记住我在首页上有登录表单 我是否应该将加密降低到 128 位 如果站点总体较小 速度差异是
  • 应用程序网关中的 SSL 证书到期日期

    我们有一个带有 SSL 证书的 Azure 应用程序网关 我们知道我们的证书即将过期 我们需要更新它 我们的问题是 我们无法获取网关信息中的实际到期日期 至少无法从门户获取 有人知道我们可以在哪里检索此信息吗 可能没有直接从 Azure 门
  • HAProxy SSL终止+客户端证书验证+curl/java客户端

    我希望使用我自己的自签名证书在 HAProxy 上进行 SSL 终止 并使用我创建的客户端证书验证客户端访问 我通过以下方式创建服务器 也是 CA 证书 openssl genrsa out ca key 1024 openssl req
  • com.ibm.msg.client.jms.DetailedJMSException:JMSWMQ0018:无法使用连接模式“yyy”和主机名“zzz”连接到队列管理器“xxx”

    JMS 应用程序需要七个参数才能与此处给出的 MQ 系列成功建立 SSL 连接 https github com ibm messaging mq tls ssl wizard blob master com ibm mq ssl wiza
  • Nitrous.IO 上的 HTTPS (TLS/SSL) 服务器

    请问如何在 Nitrous IO Boxes 上创建 TLS 服务器 我认为我至少必须获得 cert pem 和 key pem 或类似的东西 根据您所在的区域 您可以自动获得 SSL 身份验证 这样就够了吗 http help nitro
  • 带有客户端证书的android webview

    我尝试了几天使用嵌入在应用程序中的客户端证书的Web视图 但在我看来 android sdk没有提供任何方法来做到这一点 是否有回调来拦截服务器发送的质询 有没有办法将 webview 与客户端证书一起使用并发出 https 请求 因为我也
  • SSL握手时是否检查服务器域名

    在 SSL 握手期间 是否在 SSL 握手期间检查服务器的域名 我的意思是 是否根据服务器运行的域检查了经过认证的服务器中的域名 示例 假设服务器证书具有域 mydomain com 如果服务器在域 someotherdomain com
  • “未知 ca”,具有自行生成的 CA、证书和客户端/服务器

    我正在编写一个自定义客户端和服务器 我想通过公共互联网安全地进行通信 因此我想使用 OpenSSL 并让两端进行对等验证 以确保我的客户端不会被 MITM 误导 同样未经授权的客户端无法连接到服务器 这是在 SSL connect SSL
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 扭曲的日志记录到屏幕(标准输出)不起作用

    我有这个小程序取自这里 https twistedmatrix com documents 16 3 0 core howto logger html usage for emitting applications from twisted
  • Python Twisted 与 Cmd 模块集成

    我喜欢Python的Twisted http twistedmatrix com and Cmd http docs python org library cmd html 我想一起使用它们 我已经完成了一些工作 但到目前为止我还没有弄清楚

随机推荐

  • SignalR、JQuery 和 Node

    在我目前正在进行的一个项目中 我们使用 Electron 作为主机 在 Electron 主进程 这是一个普通的 Node 进程 中 我们需要连接到具有 SignalR 端点的下游后端 然而 由于 SignalR 是一个 JQuery 模块
  • 为什么这两个变量 `${ "_<$filename" }` 和 `${ "::_<$filename" }` 不相等?

    这个问题与this one 你说这两个是一样的 lt filename Not allowed under strict lt filename In main package Not allowed under strict 但接下来怎么
  • Firefox 过渡不起作用

    这是我的 CSS 设置 element1 element2 webkit transition left 0 3s moz transition left 0 3s o transition left 0 3s transition lef
  • 存储用户对象时避免使用 db.UserProperty()

    编辑 2014 年 8 月 1 日 截至本次编辑时 我意识到主题属性db UserProperty 至少从 ndb 数据存储中删除 好的 所以 有 db UserProperty 模型类存储电子邮件地址 按 Unicode 顺序 它与仅存储
  • 改变图例的顺序以实现多种美学

    又一个 传奇 问题 我有几种美学 并希望指定每种美学的图例的绘制顺序 大多数主题都是关于更改项目的顺序within审美 但这不是我的问题 在我的示例中 我想指定填充图例的位置 有趣的是 颜色图例绘制在填充图例的顶部 但是当在底部绘制图例时
  • 过滤pandas数据框列时如何使用.le()和.ge()?

    这是一个 pandas DataFrame 示例 import pandas as pd import numpy as np data first column item1 item2 item3 item4 item5 item6 it
  • TYPO3 - 如何禁用页面上特定内容元素的缓存?

    是否可以禁用页面上某一特定元素的缓存 我已经尝试过以下打字稿 如中所述这个答案 但它对我不起作用 TYPO3 v8 tt content textmedia 20 USER INT 我在用ext fluid styled content使用
  • 班级失衡严重的训练

    这是一个由三部分组成的问题 1 类大小 我正在 5 个类上训练 TF 对象检测 API 其中大小彼此并不接近 第1类图像数量 401 第2类图像数量 389 第3类图像数量 532 第4类图像数量 159393 第5类图像数量 185313
  • kubernetes集群中的DNS解析问题

    我们有一个 kubernetes 集群 由 4 个工作节点和 1 个主节点组成 上worker1 and worker2我们无法解析 DNS 名称 但在其他两个节点中一切正常 我按照官方文档的说明进行操作here and 我意识到 core
  • 适用于 iOS 的 Google Places API 与 Google Places Web 服务

    我计划有一个应用程序来列出附近的地点UITableView with UISearchController结合自动完成功能来过滤地点结果 我正在尝试使用 Google Places API 我很困惑 因为我不知道应该使用哪个 API Goo
  • 以编程方式禁用和启用 AWS lambda 触发器

    我们是否可以通过编程方式禁用和启用 Lambda 触发器 例如用于计划维护目的 您可以使用以下方法禁用和启用 Lambda 触发器 更新事件源映射 取决于您将如何做 使用 AWS CLI 您可以使用 AWS CLI更新事件源映射命令与 en
  • 有没有办法在使用 CDN 的情况下为 .scss 中引用的图像的 url 添加前缀? [复制]

    这个问题在这里已经有答案了 目前在我的 scss我有文件 grid pic width width grid background transparent url img exemple bg png 0 0 repeat 有没有办法去除
  • 为什么不能控制更新/刷新过程中

    我有一个带有 statusLabel 的 Windows 窗体 C NET 我似乎无法在事件处理程序方法的进程中间进行更新 我的代码看起来像这样 void Process Completed object sender EventArgs
  • 如何在 JBoss 中禁用 HTTP OPTIONS 方法?

    我正在尝试禁用 JBOSS HTTP OPTIONS 方法 在 JBoss 的 web xml 中使用以下语法 我可以禁用除 OPTIONS 之外的所有 http 方法 有没有办法成功禁用http method OPTIONS 单击此处查看
  • 依赖于其他功能的 Specflow 功能是否有效?

    我想写一个验收测试 given the first test has run when I do this new test then this new test passes 这是因为第一个测试将使数据保持有效状态以执行下一个测试 我可以
  • C++ DAL - 返回引用或填充传入的引用

    编辑 1 添加第三个指针语法 感谢 Alex 您更喜欢哪种 DAL 方法以及为什么 Car DAL loadCar int id bool DAL loadCar int id Car car Car DAL loadCar int id
  • Linq 不在数据表上的选择中

    您好 我有 2 个数据表 bannedlist countrylist 两者都包含国家 地区名称列表以及 cc 和国家列中的 cod 我正在尝试执行一个查询 我可以从国家列表表中选择不在禁止列表表中的国家 地区 以便创建第三个表 有任何想法
  • 在 iPhone SDK 上的 UIAlertView 中点击按钮时打开 Settings.app [重复]

    这个问题在这里已经有答案了 可能的重复 从另一个应用程序打开 设置 应用程序 有没有办法在我显示时将用户引导至 Settings appUIAlertView迅速的 此提示提醒用户他的位置服务已关闭 我希望用户在点击我的应用程序中的按钮时打
  • 根据R中的grep结果替换数据值

    我有一个数据框 其中一列的值如下 WIND WINDS强风 etc 其他值中 现在我想将每个包含 WIND 变体的值重命名为 WIND 我知道如何找到需要替换的值 grep WIND df col1 但不知道如何替换这些值 谢谢 您可以使用
  • 扭曲的listenSSL虚拟主机

    目前使用一个非常简单的 TwistedNameVirtualHost加上一些 JSON 配置文件 可以在一个文件中提供真正基本的内容Site目的 Twisted 提供的资源都是 Flask 中构建的 WSGI 对象 我想知道如何用一个来包装