Esiste un servizio Web protetto da un certificato. Nel codice client che lo chiama, la CA del certificato deve essere presente nel truststore (percorso_JRE \ lib \ security \ cacerts); in caso contrario, si ottiene l'eccezione PKIX sul lato client.Affidarsi a un certificato autofirmato scaduto mentre si chiama un webservice
Cosa succede se il certificato è scaduto - il codice client non funziona.
Tuttavia, questo può essere aggirato con l'aggiunta del certificato direttamente nel truststore - Trusting an expired certificate
vale a dire se il certificato stesso e non la CA è presente nel truststore, allora tutto funziona, anche se il certificato è scaduto.
Nel mio scenario, il certificato del servizio Web è autofirmato, quindi dovevo comunque aggiungerlo al truststore e il client continua a funzionare anche quando il certificato è scaduto.
Ora la mia domanda è questa funziona in tutti gli scenari - il mio programma è solo un programma a riga di comando che esegue un JRE locale.
Nel caso in cui ci sia un'applicazione che chiama il servizio web e l'applicazione è in esecuzione su Websphere, JBoss, WebLogic, Tomcat, Glassfish ecc. E il certificato autofirmato viene aggiunto al truststore di quell'ambiente, posso ancora supporre che continuerà lavorare (non dare errori scaduti)?
Suppongo che funzionerebbe, perché quei server di applicazioni userebbero anche un JRE come qualsiasi altro programma o mi manca qualcosa?
Se non si desidera che sicuro, non utilizzare HTTPS. Se lo vuoi sicuro, non provare a scegliere le tue caratteristiche di sicurezza. – EJP
come @EJP ha detto: di solito non è una buona idea indebolire la sicurezza. Ma spesso anche noi programmatori dobbiamo impedire alle applicazioni di fallire silenziosamente. Quindi è necessario assicurarsi che se il programma fallisce, il motivo diventerà chiaro a qualsiasi amministratore che si occupa di questo problema o si potrebbe provare a rilevare le eccezioni che si verificano dai certificati scaduti o forzare dall'interno del codice quali certificati sono accettati: http: // stackoverflow.com/questions/6659360/how-to-solve-javax-net-ssl-sslhandshakeexception-error – Marged
Se hai il comando openssl sul tuo ambiente (installalo). puoi usarlo come applicazione di background in background cmd con [data check] (http://stackoverflow.com/questions/21297853/how-to-determine-ssl-cert-expiration-date-from-a-pem-encoded-certificate # answer-21297927) e leggi il risultato –