Überprüfen der Domäne eines Zertifikats in OpenSSL
Ich muss die Domäne eines X509-Zertifikats mit C-land OpenSSL überprüfen.
Mein Verständnis ist, dass die Bibliothek dies nicht für mich tut und dass ich ungefähr den folgenden Algorithmus implementieren muss:
Wenn das Feld dnsName der Erweiterung subjectAlternativeName vorhanden ist, legen Sie festname
auf diesen Wert.Ansonsten setzenname
zum CN-Feld des Subjekts.Vergleichen Siename
mit dem angeforderten Hostnamen abgleichen, sodass jedes Sternchen mit [A-Za-z0-9 _] + übereinstimmt, jedoch nicht mit 'Punkt' (.).Es scheint mir, dass es genügend Code geben sollte, um dies zu tun, aber ich habe keinen gefunden.
Kann jemand ein Beispiel dafür finden? Oder alternativ, meinen Algorithmus auf seine Richtigkeit prüfen?
EDIT: Dies ist, was ich mir ausgedacht habe:https://gist.github.com/2821083. Es scheint wirklich seltsam, dass OpenSSL dies dem Aufruf von Code überlässt.