Ich schreibe gerade einen Netzwerk-TCP-Server mit SSL. In der Produktion benötigen wir schließlich, dass sich Clients mit einem Zertifikat authentifizieren.Java SSL Zertifikatsperrungsprüfung
Um Zertifikate im Notfall zu widerrufen, möchten wir auch eine CRL erstellen.
Meine Frage ist: Prüft Java CRLs (wenn mit dem Zertifikat zur Verfügung gestellt) out-of-the-Box oder muss ich solche Prüfungen manuell implementieren?
Zum Testen bereitete ich ein Zertifikat mit einem CRL-Satz vor, aber Java scheint nicht zu versuchen, es zu validieren (ich habe es auf einen lokalen Webserver fallen lassen und es gibt keinen Zugriff).
Ich fand nur die com.sun.net.ssl.checkRevocation = True VM-Option, aber offenbar fragt es nicht die CRL. VM-Debugging auf java.security.debug = CertPath keine Ausgabe erzeugen, entweder ...
Java scheint Klassen bezogen zu haben in seinen Subsysteme (zB java.security.cert.X509CRLSelector), aber es kommt natürlich nicht ins Spiel.
Ich schrieb ein kleinen Maven-Stil-Projekt mit Apache Mina als Client-Server, der einen SSL-Kontext basierend auf Schlüssel/Truststores und selbstsignierte Zertifikate für Client/Server initialisiert, die hier als ZIP-Archiv heruntergeladen werden kann: https://www.dropbox.com/s/3fqmd1v9mn2a5ve/ssltest.zip?dl=0
Standardmäßig überprüft Java nicht CRL, wenn Sie benötigen, müssen Sie benutzerdefinierte Zertifikat Validator erstellen. –
Dies kann Ihnen helfen https://www.java.com/de/download/help/revocation_options.xml –
Mögliche Duplikate von [CRL Verifikation in Java] (http://stackoverflow.com/questions/30903993/crl-verification -in-java) –