ich nutze Apache2 mit mod_ssl um eine Zertifikatsbasierte Authentifizierung zu realisieren. Funktionieren tut es soweit auch, nur bereitet mir eine Sache Kopfzerbrechen. Betrete ich den Zertifikatsgeschützten bereich, fragt mich mein Browser (Firefox3) nach einem entsprechenden Benutzerzertifikat. Klicke ich nun auf einen Link, der sich ebenfalls innerhalb des geschützten Bereiches liegt, so kommt es HÄUFIG (nicht immer) vor, dass ich erneut das Zertifikat auswählen muss. Das ist natürlich hinderlich, gerade wenn eine ganze Website so geschützt sein soll.
Was ich mir vorstelle:
Man wird beim ersten betreten des geschützten Bereiches zur Auswahl eines Zertifikates aufgefordert. Führt man dann innerhalb einer gewissen Zeitspanne (sagen wir mal 5 Minuten) eine neue Aktion aus, kommt keine erneute Abfrage, weil IRGENDEIN Cache genutzt wird.
Was ich bislang versucht habe:
Meiner Meinung nach, sollten hier die SSLSessionCache-Direktiven greifen. Also steht bei mir folgendes in der entsprechenden Config:
- Code: Select all
SSLSessionCache dbm:logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex sem
....
<Directory /srv/www/auth>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
SSLOptions +OptRenegotiate
SSLVerifyClient optional
</Directory>
Irgendwo stehen natürlich auch noch die CA-, CRL usw. Informationen, aber der Teil scheint ja problemlos zu funktionieren. Durch
- Code: Select all
SSLSessionCache dbm:logs/ssl_scache
SSLSessionCacheTimeout 300
erwarte ich eigentlich das ein Cache angelegt wird, SSL-Informationen für 300 Sekunden vorhält.
- Code: Select all
SSLOptions +OptRenegotiate
sollte meiner Meinung nach dann dazu führen, dass der SSL-Handshake bei einer zweiten, dritten... Anfrage nicht erneut vollständig ausgeführt wird, weil wegen der SSL-Session-Id auf eine gecachte Verbindung und somit auf das Client-Zertifikat zugegriffen werden kann, ohne es erneut anzufordern.
Was mir helfen würde:
Kennt sich hier nun jemand soweit aus, dass er mir Hinweise/Hilfestellung zur Konfiguration geben kann. Wo liegt hier das Problem? Habe ich das mit dem Session-Cache und/oder dem OptRenegotiate falsch verstanden? Habe ich es richtig verstanden und der Apache versteht mich nicht? Bin für Hinweise sehr dankbar.
Vielen Dank und viele Grüße,
hacksteak25