Istnieje usługa chroniona certyfikatem. W kodzie klienckim, który go wywołuje, urząd certyfikacji musi się znajdować w magazynie zaufanych certyfikatów (JRE_path \ lib \ security \ cacerts) - jeśli nie, po stronie klienta pojawi się wyjątek PKIX.Zaufanie wygasłego certyfikatu z podpisem własnym podczas wywoływania usługi internetowej
Co się stanie, jeśli certyfikat wygasł - kod klienta nie działa.
Jednak ten można obejść przez dodanie certyfikatu bezpośrednio do truststore - Trusting an expired certificate
czyli jeśli sam certyfikat CA i nie jest obecny w truststore, to wszystko działa, nawet jeśli certyfikat wygasł.
W moim scenariuszu certyfikat usługi internetowej jest samopodpisany, więc i tak musiałam go dodać do magazynu zaufanych certyfikatów, a klient nadal działa poprawnie nawet po wygaśnięciu certyfikatu.
Teraz moje pytanie brzmi: będzie to działało we wszystkich scenariuszach - mój program to tylko program wiersza poleceń działający w lokalnym środowisku JRE.
Jeśli istnieje aplikacja wywołująca usługę sieci Web i aplikacja działa w środowisku Websphere, JBoss, WebLogic, Tomcat, Glassfish itp. I certyfikat z podpisem własnym jest dodawany do pliku zaufanych certyfikatów tego środowiska, czy mogę nadal zakładać, że będzie on kontynuowany pracować (nie podawać wygasłych błędów)?
Zakładam, że to zadziała - ponieważ te serwery aplikacji będą również używać środowiska JRE, tak jak w przypadku dowolnego programu - czy też czegoś mi brakuje?
Jeśli nie chcesz, bezpieczny, nie używaj HTTPS. Jeśli chcesz, aby był bezpieczny, nie próbuj wybierać swoich własnych funkcji bezpieczeństwa. – EJP
jak @EJP powiedział: zwykle nie jest dobrym pomysłem osłabienie bezpieczeństwa. Często jednak my, jako programiści, musimy także zapobiegać dyskretnej awarii aplikacji. Powinieneś więc upewnić się, że jeśli program się nie powiedzie, przyczyna stanie się oczywista dla każdego administratora zajmującego się tym problemem lub możesz spróbować wychwycić wyjątki, które wystąpiły z wygasłych certyfikatów lub wymuszać z twojego kodu, które certyfikaty są akceptowane: http: // stackoverflow.com/questions/6659360/how-to-solve-javax-net-ssl-sslhandshakeexception-error – Marged
Jeśli masz polecenie openssl w swoim środowisku (zainstaluj). możesz go używać jako aplikacji w tle w cmd z [sprawdzić datę] (http://stackoverflow.com/questions/21297853/how-to-determine-ssl-cert-expiration-date-from--pem-encoded-certyfikat # answer-21297927) i przeczytaj wynik: –