Назад | Перейти на главную страницу

Как заставить x509 работать с Trac?

Привет, я пытался найти способ получить сертификаты x509 для аутентификации для Trac, но я не смог найти никаких плагинов на TracHacks или руководств по этому поводу.

Самое близкое, что я видел до сих пор, - это пост в группах Google

http://groups.google.com/group/trac-users/browse_thread/thread/0ea6cb82058eb9a9?pli=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.