Apache - autorizace pomoci klient. certifikatu

Lubomir Horna lubos na horna.biz
Pátek Únor 10 15:20:01 CET 2006


	Zdravim,

uz se delsi cas snazim rozchodit overovani klienta pomoci certifikatu,
stale se nedari... nekde delam chybu, ale uz mam tak zasukovane ruce a
hlavu, ze nevim ktera je leva a ktera prava :)

Vygeneroval jsem si vlastni CA, dale cert. a privat key pro server i
klienta, a touto CA jsem je podepsal. Pro klienta jsem jeste udelal
"svazek" PKCS#12 pro import do prohlizece (Firefox 1.0.7).

Pripojuji info o systemu, konfig. vhosta a hlasky z logu...

Z te chybove hlasky rozumim, ze problem s certifikatem, ale ktere
"Certificate chain" se vlastne porovnavaji? Certifikat serveru s
klientskym, nebo korenovy cert.CA (ktery je ulozeny na serveru)
kontroluje podpis v klientskem certifikatu?

Diky za nakopnuti... ;)

Lubos



------
 Debian 3.1 Sarge
 Apache 2.0.54-5
 openssl 0.9.7e-3sarge1

vhost:
------
 <VirtualHost 1.2.3.4:443>
    ServerAdmin bobis na bobis.cz
    ServerName ccm.bobis.cz
    DocumentRoot /www/sites/bobis/ccm/html

    SSLEngine on
    CustomLog /var/log/apache2/ssl_request_log "%t %h %{SSL_PROTOCOL}x
%{SSL_CIPHER}x %{SSL_CLIENT_S_DN_O}x \"%r\" %b"

    # SSLRequireSSL
    # SSLOptions      +FakeBasicAuth
    # SSLOptions      +StdEnvVars +ExportCertData

    SSLCACertificatePath /etc/apache2/ssl/CAcrt
    SSLCACertificateFile /etc/apache2/ssl/CAcrt/luboss_cacert.pem
    ## SSLCertificateChainFile /etc/apache2/ssl/CAcrt/luboss_cacert.pem
    ## SSLCACertificateFile /etc/apache2/ssl/CAcrt/c1a1d32d.0
    ## SSLCertificateChainFile /etc/apache2/ssl/CAcrt/c1a1d32d.0

    <Directory /www/sites/bobis/ccm/html>
    SSLVerifyClient      optional
    SSLVerifyDepth       1
    SSLRequire      ( %{SSL_CLIENT_S_DN_O} in {"luboss","BOBIS a.s."} )
    </Directory>
</VirtualHost>

-------
/var/log/apache2/error.log:

[error] Certificate Verification: Error (20): unable to get local issuer
certificate
[error] Re-negotiation handshake failed: Not accepted by client!?



Další informace o konferenci Linux