Apache+Openssl+авторизация на сайте с помощью сертификата.

Автор SnakeS_Cobra, 10 Декабря 2013, 11:22

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

SnakeS_Cobra

Добрый день! Есть задача сделать вход на сайт  при помощи сертификата. HTTPS запустился на ура, сертификаты сгенерированы внутридоменным центром сертификации и валидны. Но вот авторизация пользователя с помощью сертификата не хочет работать не в какую
Конфиг
CentOS 5.10
apache 2.2.3
OpenSSL 0.9.8e-26.el5_9.1

Конфиг mod_ssl
cat ssl.conf
LoadModule ssl_module modules/mod_ssl.so
Listen 4430
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin


Конфиг виртуального хоста
cat test.conf
<VirtualHost *:4430>
SSLEngine on
    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
    SSLCertificateFile /etc/pki/tls/certs/abk.pem
    SSLCertificateKeyFile /etc/pki/tls/private/abk.key
    SSLCACertificateFile /etc/pki/tls/certs/CA.cer
    SSLOptions  -OptRenegotiate
    SSLInsecureRenegotiation On
    ServerAdmin admin@stn.kz
    DocumentRoot /var/www/html/abk/
    <Directory /var/www/html/abk/>
    SSLRequireSSL
    SSLVerifyClient require
    SSLVerifyDepth 1
    AllowOverride
    </Directory>
    ServerName abk.test.kz
    LogLevel debug
    ErrorLog logs/abk
    CustomLog logs/access_abk common
</VirtualHost>


Логи
[Tue Dec 10 10:55:04 2013] [error] Re-negotiation handshake failed: Not accepted by client!?
Гугление вывело только на то что после патча CVE-2009-3555 Эта фишка работать не будет. Нарывался правда и на статьи, где описано что будет работать если добавить опцию SSLInsecureRenegotiation On. но полных конфигов не приведено. Помогите, куда копать.

B@F

"Name-based virtual hosting cannot be used with SSL secure servers because of the nature of the SSL protocol"
Я понимаю это так что должен быть только один сайт.
Попробуй добавить в httpd.conf
SSLProtocol all -SSLv2 SSLVerifyClient none
Затем перенеси SSLVerifyClient require из  <Directory /var/www/html/abk/> в описание хоста и перезапусти апача.

Я как-то игрался с этим на дебиане, мне что-то из этого помогло, но IE так и не захотел.
Поправьте, если я ошибаюсь, буду тока рад.

SnakeS_Cobra

Спасибо, Ваш ответ был очень полезен в дальнейшем разборе ошибок. Отключил SSLv2 и перенес SSLVerifyClient require из  <Directory /var/www/html/abk/> в описание хоста. После небольших танцев с бубном все запустилось даже с IE(если отключить у него в безопасности протокол SSLv2)
И впринципи SSL работает на виртуальном хосте, не трогая другие. тут проблем нет.
Еще одна тонкость. Главное правильно сгенерировать сертификат клиента и сертификат сервера.

B@F

Цитата: SnakeS_Cobra от 12 Декабря 2013, 09:58Главное правильно сгенерировать сертификат клиента и сертификат сервера.

Это уже само собой :)
Поправьте, если я ошибаюсь, буду тока рад.