Mailinglisten-Archive |
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