你好,我一直在尝试寻找一种方法来获取用于 Trac 身份验证的 x509 证书,但我找不到有关 TracHacks 的任何插件或教程。
目前为止我看到的最接近的帖子是谷歌群组上的这个帖子
http://groups.google.com/group/trac-users/browse_thread/thread/0ea6cb82058eb9a9?pli=1
有人知道我可以在哪里找到相关信息或知道我该如何做到这一点吗?
谢谢
答案1
Trac (vainilla) 将其身份验证委托给 apache(或其他服务器软件),并将授权委托给 trac。因此,执行您要执行的操作的最佳方法是向服务器和用户颁发一些证书,并使用 apache FakeBasicAuth
mod_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。