ich versuche aktuell mit GnuTLS eine Client-Authentifierung mittels Zertifikat zu erreichen. Leider scheine ich hier keinerlei Fortschritte mehr zu verbuchen, und eine Anleitung dazu konnte ich auch bisher nicht finden, die vollständig beschreibt, wie ich dies Bewerkstellige. Die normale SSL-Verschlüsselung für HTTPS-Verbindungen ist bereits eingerichtet und funktional. Ich benutze Debian 6 mit den Standard Quellen für Pakete.
Die Ausgabe der Variablen SSL_CLIENT_CERT und SSL_CLIENT_VERIFY sieht wie folgt aus (dafür wurde GnuTLSClientVerify auf "request" umgestellt):
Code: Alles auswählen
SSL_CLIENT_CERT:
SSL_CLIENT_VERIFY: NONE
Installiert sind folgende Pakete für den Apache (und zusätzlich certtool und openssl).
Code: Alles auswählen
ii apache2 2.2.16-6+squeeze4 Apache HTTP Server metapackage
ii apache2-mpm-prefork 2.2.16-6+squeeze4 Apache HTTP Server - traditional non-threaded model
ii apache2-utils 2.2.16-6+squeeze4 utility programs for webservers
ii apache2.2-bin 2.2.16-6+squeeze4 Apache HTTP Server common binary files
ii apache2.2-common 2.2.16-6+squeeze4 Apache HTTP Server common files
ii libapache2-mod-auth-mysql 4.3.9-13 Apache 2 module for MySQL authentication
ii libapache2-mod-auth-plain 2.0.50 Module for Apache2 which provides plaintext authentication
ii libapache2-mod-chroot 0.5-7 run Apache in a secure chroot environment
ii libapache2-mod-encoding 20040616-5 Apache2 module for non-ascii filename interoperability
ii libapache2-mod-evasive 1.10.1-1 evasive module to minimize HTTP DoS or brute force attacks
ii libapache2-mod-gnutls 0.5.6-1+squeeze1 Apache module for SSL and TLS encryption with GnuTLS
ii libapache2-mod-php5 5.3.3-7+squeeze3 server-side, HTML-embedded scripting language (Apache 2 module)
ii libapache2-mod-upload-progress 0.1+git20100316-1 upload progress support for the Apache web server
Die HTTPS-Konfiguration sieht für den vHost wie folgt aus (nicht relevante Teile wurden entfernt):
Code: Alles auswählen
<VirtualHost 1.2.3.4:443>
ServerAdmin "webmaster@domain.tld"
ServerName www.domain.tld
<IfModule mod_gnutls.c>
GnuTLSEnable On
GnuTLSPriorities SECURE:!MD5
GnuTLSExportCertificates On
GnuTLSClientCAFile "/ssl/ca/cacert.pem"
GnuTLSCertificateFile "/ssl/www.domain.tld/my_public_cert.pem"
GnuTLSKeyFile "/ssl/www.domain.tld/my_private_key.pem"
</IfModule>
DocumentRoot "/users/user1/public_html/"
<Directory "/users/user1/public_html/">
Options -Indexes SymLinksIfOwnerMatch -MultiViews IncludesNoExec
AllowOverride FileInfo AuthConfig Limit
</Directory>
<Directory "/users/user1/public_html/secure/">
<IfModule mod_gnutls.c>
GnuTLSClientVerify require
</IfModule>
</Directory>
</VirtualHost>
Ich habe bisher versucht mit folgenden Quellen dies selbstständig zu lösen:
http://www.outoforder.cc/projects/apach ... utls/docs/
http://www.noatun.net/docs/ssl_client.html
http://www.jfranken.de/homepages/johann ... html#ToC20
http://linuxconfig.org/apache-web-serve ... entication
http://www.werthmoeller.de/doc/microhow ... ient_auth/
http://tt-rss.org/redmine/wiki/1/SSLAuthentication