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