2016-05-11 9 views

Antwort

3

SSL_CLIENT_CERT hat nur öffentlichen Schlüssel, so dass Sie nichts auf diese Weise signieren können.

Um etwas mit einem X.509-Zertifikat zu signieren, müssen Sie Zugriff auf seinen privaten Schlüssel haben. Dies bedeutet, dass nur der Besitzer des Zertifikats mit der Software signieren kann, die Zugriff auf den privaten Schlüssel hat. Es ist also unmöglich, mit einem Server mit Benutzerzertifikat zu signieren. Mit dem öffentlichen Schlüssel können Sie nur Daten verschlüsseln.

Leider, da Java-Applets heutzutage praktisch unbrauchbar sind, werden Sie es schwer haben, dies in Browsern zu funktionieren. Vielleicht hilft PKI.js, aber ich weiß nicht, ob es mit Hardware-Tokens (PKCS # 11) funktioniert.

Kürzlich wurde ich beauftragt, mit der Lösung für ein ähnliches Problem zu kommen, und ich habe eine Desktop-Anwendung (nur für Windows, mit .NET SecureBlackbox library) im Tray, die regelmäßig den Server für Dokumente zu unterzeichnen, abfragt, holt sie , signiert und zurücksendet an den Server.

+0

Okay ... Ist es eine Apache/PHP-Einschränkung oder ist es im Web-Server-Kontext unmöglich? Auch mit Dongle/Token? – celsowm