【发布时间】:2012-04-08 04:56:24
【问题描述】:
我正在构建一个 python 应用程序,其中客户端将从服务器(也运行 python)请求 xml 页面。
我想做一些关于puppet配置管理系统的事情。木偶的工作原理如下:
1) 如果客户端第一次运行,它会生成一个证书签名请求和一个私钥。前者是自签名的 x509 证书。
2)客户端连接到master(此时客户端没有被认证)并发送它的CSR,它也会收到CA证书和CRL作为回报。
3) master 将 CSR 存储在本地
4) 管理员检查 CSR 并最终对其进行签名(此过程可以通过自动签名自动化)。我强烈建议在此阶段验证证书指纹。
5) 客户端然后等待他的签名证书,主机最终发送该证书。
6) 所有接下来的通信都将使用这个客户端证书。主服务器和客户端都将通过共享同一个 CA 来相互验证。
(来自http://www.masterzen.fr/2010/11/14/puppet-ssl-explained/)
我不知道该怎么做的主要事情是:
- 最好使用哪些库?
- 在服务器端使用什么? apache/nginx 后面的 Django 是否能够在第一次运行时签署证书并在之后使用证书进行身份验证,或者我需要在前端使用类似 twisted 的东西?
- 发送 CSR 的最佳方式是向服务器发送 POST?
- 有人知道是否有一些代码示例可以同时涵盖客户端和服务器端吗?
- 有没有其他方法可以在无需人工迭代的情况下在客户端/服务器之间建立可信连接(Web 服务之间身份验证的最佳实践是什么)?
【问题讨论】: