Tornado从请求标题中读取X509证书

时间:2015-02-20 15:29:28

标签: java python tornado x509certificate

如何从进入Tornado服务器的HTTP(S)请求中读取X509证书? java中的类似代码:

public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
  IOException {
res.setContentType("text/plain");
PrintWriter out = res.getWriter();

X509Certificate[] certs = (X509Certificate[]) req
    .getAttribute("javax.servlet.request.X509Certificate");

1 个答案:

答案 0 :(得分:1)

RequestHandler中,使用self.request.get_ssl_certificate()。要使用此方法,您还必须在构建cert_reqs时在ssl_options中设置HTTPServer选项:

server = HTTPServer(app,
    ssl_options=dict(
        certfile="foo.crt",
        keyfile="foo.key",
        cert_reqs=ssl.CERT_REQUIRED,
        ca_certs="cacert.crt"))

http://www.tornadoweb.org/en/stable/httputil.html#tornado.httputil.HTTPServerRequest.get_ssl_certificate