phpbar.de logo

Mailinglisten-Archive

[php] OT? - SSL Clientzertifikate auslesen

[php] OT? - SSL Clientzertifikate auslesen

Thomas Langfeld opa.thomas at fhtw-berlin.de
Mit Jan 28 10:17:09 CET 2004


Guten Morgen,

ich stehe vor dem Problem, Teile eines Client-Zertifikates auslesen zu 
müssen.
Der Apache verwendet in einem bestimmten Ordner Client-Authentifizierung 
und einige Bereiche des Zertifikates vom Client werden benötigt.

Durch "SSLOptions +ExportCertData" steht dieses Zertifikat im 
"PEM"-Format in einer Variable zur Verfügung.
Speichert man den Inhalt in eine Datei foo.pem, kann man mittels
   openssl x509 -noout -text -in foo.pem
den Inhalt auslesen.

Nun geht es darum, einen Wert unterhalb von "X509v3 extensions" zu 
ermitteln:

So sieht das ganze ungefähr aus:
Certificate:
   Data:
     ...
     ...
     X509v3 extensions:
             X509v3 Key Usage:
                 Digital Signature, Non Repudiation, Key Agreement
             6.33.678.2.6.7.3.7.9:
                 0-0..
`.t.........jhtnql7..
`.t.........c562298
             X509v3 Subject Alternative Name:
                 email:foo.bar at fubar.com
  ...
  ...

Benötigt werden jetzt die Email-Adresse im Alternative Name, was 
anscheinend ganz gut durch:
   openssl x509 -noout -email -in foo.pem
funktioniert.

Ausserdem wird aber der Teil in der Extension "6.33.678 ..." benötigt: 
"c562298". Das sind wichtige Benutzerinformationen.


Da die ganze Geschichte mit PHP realisiert werden sollte, wende ich mich 
mit dem Problem mal an die Liste.

Über "exec()" komme ich an die Email-Adresse, doch wie sich mir der 
andere benötigte Teil erschließen soll, ist mir im Moment schleierhaft.

Auch ob ich das Zertifikat erst in eine Datei schreiben muss, und danach 
openssl drauflasse - oder es eine bessere/einfachere Möglichkeit gibt, 
an die Daten zu kommen, weiß ich nicht.

Kennt sich hier jemand mit der Thematik aus?

Gruß
Thomas



PS: Wenn das zu OT ist, auch gern per PM

php::bar PHP Wiki   -   Listenarchive