- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 python 应用程序,其中客户端将从服务器(也运行 python)请求 xml 页面。
我想在puppet配置管理系统上做点什么。 Puppet 的工作原理如下:
1) If the client runs for the 1st time, it generates a Certificate Signing Request and a private key. The former is an x509 certificate that is self-signed.
2) The client connects to the master (at this time the client is not authenticated) and sends its CSR, it will also receives the CA certificate and the CRL in return.
3) The master stores locally the CSR
4) The administrator checks the CSR and can eventually sign it (this process can be automated with autosigning). I strongly suggest verifying certificate fingerprint at this stage.
5) The client is then waiting for his signed certificate, which the master ultimately sends.
6) All next communications will use this client certificate. Both the master and client will authenticate each others by virtue of sharing the same CA.
(from http://www.masterzen.fr/2010/11/14/puppet-ssl-explained/)
我不会做的主要是:
- 哪些库最好用?
- 在服务器端使用什么? apache/nginx 背后的 Django 是否能够在第一次运行时签署证书并在之后使用证书进行身份验证,或者我需要在前端使用类似 twisted 的东西?
- 发送 CSR 的最佳方式是向服务器发送 POST?
- 有人知道是否有一些代码示例可以同时涵盖客户端和服务器端吗?
- 是否有任何其他方法无需人工迭代即可在客户端/服务器之间建立可信连接(Web 服务之间身份验证的最佳实践是什么)?
最佳答案
有一个围绕 M2Crypto 的 Python 包装器,名为 pki这使得创建 CSR 等变得如此容易。您应该能够为此使用 Django,我认为您没有理由需要 Twisted。
您也可以通过 POST 发送 CSR,是的,其中没有任何 secret 信息 - 这就是重点。
我链接到的 pki 包有相当详尽的文档字符串,应该可以让你继续。
我认为如果没有任何人为干预,您将无法建立“可信连接”。信任是人类的概念 - 因此您至少需要批准第一个连接请求,并希望您能验证尝试连接的人是否真正获得授权。
请注意,在此上下文中的“验证”意味着调用某人并询问他们是谁以及他们为什么要尝试连接到您的服务,并要求他们确认用于 CSR 的私钥指纹。
关于python - 相互 SSL 身份验证 - 客户端和服务器端。 Python -> Django/Twisted/ Tornado ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9842466/
根据一些谷歌搜索,我安装了以下错误处理程序。然而,似乎返回 http 500 的 python 异常并没有被这些东西捕获,尽管 404 是这样。通过我在下面的代码中留下的打印语句,我可以看到它没有命中
我刚刚意识到 WebSocketHandler.write_message() 返回一个 Future。我以前没有在我的函数中产生过这个函数: @tornado.gen.coroutine
这是我的 Tornado 文件:: from tornado.wsgi import WSGIContainer from tornado.ioloop import IOLoop from torn
class MainHandler(BaseHandler): @tornado.web.authenticated def get(self): self.rende
我正在尝试使用 AsyncHTTPTestCase 测试 Tornado .我想测试标有 @tornado.web.authenticated 注释的处理程序。因为此处理程序需要身份验证,所以我们必须
我正在使用 Tornado Web Server (版本 4.1)使用 Python 2.7 创建 REST Web 应用程序。我的请求处理程序之一 (web.RequestHandler) 使用多部
我想知道tornado 的内部工作流程,并且看过this article ,很好,但我就是想不通 ioloop.py里面有这样一个函数 def add_handler(self, fd, handle
如何遍历从 Python/Tornado 处理程序传递到 Tornado 模板的字典? 我试过 {% for key, value in statistics %}
我有一个 Tornado 后端,为 Angular 前端提供服务。更新数据库时,tornado api 不会获取更新的数据。它仅在我重新启动服务器后出现。有人可以帮我解决这个问题吗?我希望获取的数据能
我尝试使用自定义的 WSGIContainer 来处理异步操作: from tornado import httpserver, httpclient, ioloop, wsgi, gen @gen.
from tornado.web import RequestHandler class HelloWorldHandler(RequestHandler): def get(self):
Pylint 遇到 @tornado.web.authenticated 时崩溃 class Handler1(tornado.web.RequestHandler): def get(sel
经过 tornado.gen documentation有人可以帮我理解 tornado.gen.coroutine 和 tornado.gen.engine 之间的确切区别 最佳答案 正如 gen.
代码如下: from tornadoredis import Client from tornado.ioloop import IOLoop from tornado.gen import coro
我有一个 tornado.websocket.WebSocketHandler 的子类。在该类中,我有一个方法使用 Django ORM 从子类模型中获取用户:django.contrib.auth.
我是 ssl 之类的新手,我已经使用 openssl 生成了自签名证书。 openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days
我已经从 tornado 4.2 移动到 tornado 6.0.3,我得到了错误 AttributeError:模块“tornado.web”没有属性“异步” 根据 tornado v6 seems
我一直在关注此 ( https://developer.ibm.com/tutorials/se-distributed-apps-zeromq-part2/) 教程,以设置使用 CurveZMQ 加
我在使用tornado-celery整合tornado和celery时,出现错误:``` traceback (most recent call last): File "/usr/local/l
我正在使用 Tornado 与 twitter 等第三方进行身份验证。 我的登录处理程序看起来像这样 class AuthLoginHandler(BaseHandler, tornado.auth.
我是一名优秀的程序员,十分优秀!