Как вы можете заставить x509 работать с Trac?
Привет! Я пытался найти способ получить сертификаты x509 для аутентификации для Trac, но я не смог найти никаких плагинов для TracHacks или учебных пособий по этому вопросу.
Самое близкое, что я видел до сих пор, это сообщение в группах Google.
http://groups.google.com/group/trac-users/browse_thread/thread/0ea6cb82058eb9a9?pli=1
Кто-нибудь знает, где я могу найти соответствующую информацию или знаю, как я могу это сделать?
Спасибо
1 ответ
Trac (vainilla) делегирует свою аутентификацию apache (или другому серверному программному обеспечению) и авторизацию trac. Поэтому лучший способ сделать то, что вы пытаетесь, это выдать несколько сертификатов серверу и пользователям и настроить apache для его использования с помощью FakeBasicAuth
директива apache mod_ssl.
и настройте 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
как пароль.
Вы можете поделиться Схемой аутентификации с Subversion по https, и тогда имена пользователей будут совпадать с коммиттерами
Там также проблема с именами пользователей. Я решил исправить патч самого кода, используя что-то похожее на этот патч
Я также использую почту пользователей как "CN", поэтому без настройки trac знает, куда отправлять письма с билетами.
Все это для trac 0.11 и 0.10. Я еще не обновил trac.