Gibt es irgendwelche Befehlszeilen-Flag (s), um Java zu erlauben, abgelaufene Zertifikate zuzulassen?Java aktivieren, um abgelaufenes Zertifikat zuzulassen
Im Moment bekomme ich die folgende Ausnahme, da das Zertifikat abgelaufen ist.
Caused by: java.security.cert.CertificateExpiredException: NotAfter: {PAST DATETIME}
at sun.security.x509.CertificateValidity.valid(CertificateValidity.java:274)
at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:629)
at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:602)
at org.apache.ws.security.validate.SignatureTrustValidator.validateCertificates(SignatureTrustValidator.java:103)
Ich habe die folgende Befehlszeile-Flag versucht, die nicht Certificate Expiration Kontrolle unter Pfad
-Dcom.sun.net.ssl.checkRevocation=false
Unsere Anwendung läuft in tomcat /myapplication
nicht ignorieren. Also habe ich eine andere Anwendung erstellt /ignorecertificate
und im selben Tomcat-Webapp-Ordner bereitgestellt. Gemäß der akzeptierten Antwort in diesem question, führe ich den folgenden Code beim Start von /ignoreexpired
Anwendung.
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
Da beide Anwendungen in gleichen tomcat eingesetzt wurden, erwartet I /myapplication
Zertifikat Ablaufprüfung/Ausnahme zu ignorieren (Bcoz beide Anwendungen die gleiche Java-Instanz gemeinsam nutzen). Aber es funktioniert immer noch nicht. Ich führe diesen Ignoriercode in einer anderen Anwendung aus (/ignoreexpired
). Ich möchte in meiner aktuellen Anwendung keine Änderungen vornehmen (/myapplication
).