如何使用mod_wsgi从django访问mod_ssl环境变量?

时间:2011-09-23 07:01:14

标签: django environment-variables mod-wsgi x509 mod-ssl

我正在尝试获取客户端的证书并使用它来签署xml文件。 我已将以下内容添加到虚拟主机中:

SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +stdEnvVars

这应该允许mod_ssl获取用户的证书。但我不知道如何将它传递给我的django应用程序。任何帮助表示赞赏。感谢。

3 个答案:

答案 0 :(得分:1)

你应该使用

table.addMouseListener(new java.awt.event.MouseAdapter() {

  public void mouseClicked(java.awt.event.MouseEvent e) {
    int row = table.rowAtPoint( e.getPoint() );
    int column = table.columnAtPoint( e.getPoint() );
  }
});
}

在apache配置中,在环境中拥有SSL_CLIENT_CERT。

使用烧瓶时,它将位于SSLOptions +StdEnvVars SSLOptions +ExportCertData

根据对另一个答案的讨论,对于django来说可能是request.environ['SSL_CLIENT_CERT']

答案 1 :(得分:0)

那些Apache配置指令意味着mod_ssl environment variables现在应该可以在Django继承的环境中使用。因此,您可以使用Django视图中的os.environ对象访问它们:

import os
client_cert = os.environ['SSL_CLIENT_CERT']

SSL_CLIENT_CERT变量包含PEM编码的客户端证书。

答案 2 :(得分:0)

SSLOptions + StdEnvVars + ExportCertData

SSL_CLIENT_CERT将包含PEM编码证书。

SSL_CLIENT_CERT_CHAIN_n(其中n是数字)和SSL_SERVER_CERT也包括在内,但可能无趣。

遗憾的是,无法准确配置您想要添加到环境中的项目。如果只需要什么(对于我的通用名称和验证成功 - 虽然这可能暗示需要验证,并且对于您客户端证书PEM),这将更加苗条。