在 Python ssl 客户端/服务器的情况下自动输入密码短语

2024-06-28

我需要创建客户端/服务器应用程序以将文件从客户端发送到服务器。 我使用简单的 ssl 套接字并使用证书进行身份验证。

 
ms = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(ms,
                           keyfile=".../newCA/my_client.key",
                           certfile=".../newCA/my_client.crt",
                           server_side=0,
                           cert_reqs=ssl.CERT_REQUIRED,
                           ca_certs=".../newCA/CA/my-ca.crt"
                           )
ssl_sock.connect((HOST, MPORT))

和服务器端:


msock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.ssl_sock = ssl.wrap_socket(msock,
                           keyfile=".../newCA/my_server.key",
                           certfile=".../newCA/my_server.crt",
                           server_side=1,
                           cert_reqs=ssl.CERT_REQUIRED,
                           ca_certs=".../newCA/CA/my-ca.crt"
                           )
        self.ssl_sock.bind(('', self.PORT))
        self.ssl_sock.listen(self.QUEUE_MAX)

问题如下:当客户端尝试连接到服务器时,需要为服务器端和客户端输入两者的私钥密码。

  • 在Java中我们需要设置系统属性:javax.net.ssl.keyStorePassword=""并且它必须自动使用,但是它在Python中是如何使用的呢?我无法在客户端连接时始终输入密码短语。

问题是我的应用程序:客户端应该使用已经签名的证书,服务器也应该使用已经签名的证书。我无法改变它。服务器和客户端都是长期存在的应用程序,因此我们只需运行它们,无需寻找它们。但是,据我了解,Python 不提供自动输入私钥密码的标准方法。可能还有其他建议吗?


您可以参考Python 中的 SSLSocket 密码/密码 https://stackoverflow.com/questions/13688713/sslsocket-passphrase-password-in-python以及。对于服务器端情况,删除私钥文件的密码是有效的。 OpenSSL 提供了实用程序来执行此操作。 例如:

openssl pkey -in yourkey-with-pass.pem -out yourkey-without-pass.pem

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

在 Python ssl 客户端/服务器的情况下自动输入密码短语 的相关文章

  • Python Twisted WebSocket 客户端

    过去曾使用过 Twisted 我想知道是否有办法让 WebSocket 客户端支持发挥作用 浏览文档我只能找到服务器实现 塔文多高速公路 http www tavendo de autobahn 是一个非常有特色的 websockets 实
  • async for 的语义等价物

    从相对于的文档async for根据 Python 3 5 中的语法 我发现引入它是为了迭代可等待的迭代器 不过 在描述之后的语义等价物中 我没有得到一些东西 iter ITER iter type iter aiter iter runn
  • 使用 writeBytes 的 Java 客户端套接字

    我正在从缓冲区读取字符串并将其写入服务器 我遇到的问题是 当我打开套接字并循环写入时 服务器永远不会收到该字符串 当我使用这个时 try Socket send new Socket localhost 1490 DataOutputStr
  • Android VpnService - 如何转发拦截的互联网流量?

    我已经关注了这个link https stackoverflow com questions 17766405 android vpnservice to capture packets wont capture packets并使用 Vp
  • 如何从 BNF 生成随机程序

    我知道我的问题听起来有点模糊 但我在网上找不到任何教程 我不是在寻求答案 而是寻求更多的解释 BNF 的一个例子
  • Python 中的双 SSH 隧道

    今天 我在命令行中使用 ssh 将端口从远程服务器转发 使用中间服务器到我的本地计算机 这是我在 shell 中使用的命令 ssh user remote server L 2443 localhost 433 此 ssh 会话使用 ssh
  • 有没有办法可以保留子线程的上下文局部变量?

    目前 我创建了一个库来记录后端调用 例如对boto3 and requests库 然后根据一些数据 例如响应的状态代码等 填充全局 数据 对象 我原来有data对象作为全局的 但后来我意识到这是一个坏主意 因为当应用程序并行运行时 data
  • 以编程方式使用的免费单词列表? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Python 映射字母数字字符串

    我有一个姓名数据集 根据名称的字母数字字符串 我需要将它们映射到子名称 如下所示 Name Subname 9 AIF 09 9A09 980 PD Z09A 980P09 15 KIC 12 15K12 PIA 110H P 110 IC
  • 使用 PyQt5/Pyside2 设置重复的 SVG 图案作为主窗口/Qwidget 背景

    我已经通过生成了 SVG css 代码http www heropatterns com http www heropatterns com 我正在尝试使用它作为我的主窗口 Qwidget 的背景 我希望背景随着窗口变大或缩小而调整大小 我
  • 如何根据父字段的值限制子字段的选择?

    我有几个相当复杂的表单 它们依赖于模型层次结构来分配ForeignKey价值观 我需要根据其父字段的值限制子字段可用的选择 问题是父字段的值可能来自初始数据 GET 请求 or来自绑定数据 POST 请求 因此 我最终多次复制了这种模式 c
  • 如何为 apache beam 数据流的输出 csv 添加标头?

    我注意到在java SDK中 有一个函数可以让你编写csv文件的标题 https cloud google com dataflow java sdk JavaDoc com google cloud dataflow sdk io Tex
  • 贝塞尔曲线python的递归函数

    我被要求设计一个名为 Bezier 的递归函数 其参数是给定点的列表 以及必须评估的点 它返回贝塞尔曲线中由点列表的控制点定义的点 这是我所做的算法 def Bezier point list t if len point list 1 r
  • 启动robotframework-RIDE(机器人框架IDE)时出错

    我已经安装了Robot Framework并安装了wxPython 然后安装了Ride 当我通过执行启动它时python ride py 它会遇到如下错误 我相信这与wxPython版本有关 不确定 有一系列UnreprError像这样
  • 无法在 BeautifulSoup 中获得正确的链接

    我正在尝试解析一些 HTML 并且想提取与特定模式匹配的链接 我正在使用find使用正则表达式的方法 但它没有给我正确的链接 这是我的片段 有人可以告诉我我做错了什么吗 from BeautifulSoup import Beautiful
  • f2py:公开“已使用”模块的参数

    我认为这个问题已经在某个地方得到解决 但我花了大量的时间四处寻找答案 包括深入研究源代码 我试图将问题放在第一段中 其余部分显示了问题的基本示例 我正在尝试编译一个包含USE指向另一个更通用的模块的语句 我更愿意将使用的模块分开 以便它可以
  • 使用脚本取消设置 PDF 字体

    我正在使用 xhtml2pdf 库自动创建 PDF 几个月前我有过这个问题 https stackoverflow com questions 25203219 xhtml2pdf doesnt embed helvetica 库嵌入了我没
  • 如何使用 TfIdfVectorizer 通过 SciKitLearn 对文档进行分类?

    以下示例展示了如何使用 Sklearn 20 新闻组数据训练分类器 gt gt gt from sklearn feature extraction text import TfidfVectorizer gt gt gt categori
  • Scrapy在使用crawlerprocess运行时抛出错误

    我用 python 编写了一个脚本 使用 scrapy 来收集网站上不同帖子的名称及其链接 当我从命令行执行脚本时 它可以完美地工作 现在 我的意图是使用运行脚本CrawlerProcess 我在不同的地方寻找类似的问题 但我找不到任何直接
  • 从 pexpect 中提取 stderr

    我的问题很简单 我可以吗 expect 使用 pexpect 查看 stderr 上的某些输出 它似乎pexpect spawn 只能用于期望 stdout 上的输出 乌托邦的例子 import pexpect child pexpect

随机推荐