如何让 x509 与 Trac 协同工作?

如何让 x509 与 Trac 协同工作?

你好,我一直在尝试寻找一种方法来获取用于 Trac 身份验证的 x509 证书,但我找不到有关 TracHacks 的任何插件或教程。

目前为止我看到的最接近的帖子是谷歌群组上的这个帖子

http://groups.google.com/group/trac-users/browse_thread/thread/0ea6cb82058eb9a9?pli=1

有人知道我可以在哪里找到相关信息或知道我该如何做到这一点吗?

谢谢

答案1

Trac (vainilla) 将其身份验证委托给 apache(或其他服务器软件),并将授权委托给 trac。因此,执行您要执行的操作的最佳方法是向服务器和用户颁发一些证书,并使用 apache FakeBasicAuthmod_ssl 指令设置 apache 以使用它。

并配置VirtualHost:

<VirtualHost 127.0.0.1:443>
    SSLEngine on
    SSLProtocol all
    SSLCipherSuite HIGH:MEDIUM

    SSLCertificateFile /path/to/server.crt
    SSLCertificateKeyFile /path/to/server.key
    SSLCACertificateFile /path/to/ca.crt
    SSLCARevocationPath /path/to/crl

    SetEnvIf User-Agent ".*MSIE.*" \
           nokeepalive ssl-unclean-shutdown \
           downgrade-1.0 force-response-1.0

    SSLVerifyClient optional
    SSLVerifyDepth 1

    <Directory /path/to/project/>
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnvParentDir /path/to/
        PythonOption TracUriRoot /
        SetEnv PYTHON_EGG_CACHE /var/cache/python-eggs
        SSLOptions +StdEnvVars
        SSLOptions +FakeBasicAuth
        AuthName trac
        AuthType Basic
        AuthUserFile /path/to/passwd
        Require valid-user
    </Directory>
</VirtualHost>

然后,您将需要一个 htpasswd 文件,其中包含证书的 DN 作为用户和哈希xxj31ZMTZzkVA作为密码。

您可以通过 https 与 Subversion 共享身份验证方案,然后用户名将与提交者匹配

用户名也存在问题。我使用类似的东西修补了 trac 代码本身,解决了这个问题修补

我还将用户邮件用作“CN”,因此无需配置,trac 就知道将票证邮件发送到哪里。

所有这些都适用于 trac 0.11 和 0.10 我还没有升级 trac。

相关内容