Apache - Aanmaken en valideren client certificaten

Het aanmaken van client certificaten

  • Maak de client key aan:
    # openssl genrsa -des3 -out garex.key 1024
  • Maak de client request:
    # openssl req -new -key garex.KEY -out garex.CSR
    Bij de common name (CN) vult u hier uw eigen naam in, bijvoorbeeld "Martin Allert". Voor de organizational unit kunt u een afdeling invullen.
  • Onderteken het client certificaat request en maak het certificaat aan:
    # openssl ca -in garex.CSR -cert ../../CA/garexCA.CRT -keyfile \
    ../../CA/garexCA.KEY -out garex.CRT
  • Controleer of alle gegevens goed zijn:
    # openssl x509 -in garex.CRT -text

 

Valideren client certificaten

Hoe kan ik mijn clients authenticeren gebaseerd op certificaten als ik al mijn clients ken?
Als u uw gebruikers kent (een gesloten gebruikersgroep), zoals bij een intranet, kunt u plain certificaat authenticatie gebruiken. Het enige wat u moet doen is een client certificaat ondertekenen met uw eigen CA certificaat ca.crt en vervolgens de client verifiëren tegen het certificaat.

httpd.conf:

# een client certificaat vereist dat direct ondertekent
# moet zijn met uw CA certificaat in ca.crt
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile conf/ssl.crt/ca.crt

 

Hoe kan ik mijn clients authenticeren voor een bepaalde URL gebaseerd op certificaten, maar anonieme clients wel toegang verlenen op de rest van de server?
Om dit te realiseren gebruikt u de per-directory herconfiguratie eigenschap van http://httpd.apache.org/docs/2.0/mod/mod_ssl.html

 
httpd.conf:

SSLVerifyClient none
SSLCACertificateFile conf/ssl.crt/ca.crt

<Location /secure/area>
SSLVerifyClient require
SSLVerifyDepth 1

point up