sun.security.validator.ValidatorException: No trusted certificate found

剛剛開始做企業網站,修改ssn checknumer,遇到這個錯誤:



faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found

按照網上的方法,

%JAVA_HOME%/bin/keytool -import -file service.crt -keystore D:/test/urltest/crt

生成crt后,

在java代碼和被調用的jar代碼中加入

       System.setProperty("javax.net.ssl.trustStore","D:/tools/cacerts");
       System.setProperty("javax.net.ssl.trustStorePassword","changeit");

但是問題沒有解決,仍然出現錯誤

發現因為是本地目錄,服務器上運行出錯,

修改目錄,

System.setProperty("javax.net.ssl.trustStore","/home/weblogic/bea/user_projects/domains/appsdomain/cer");

運行,不行,還是找不到


本地編譯發現兩個方法的作用一樣:

1,代碼中加入

System.setProperty("javax.net.ssl.trustStore","D:/tools/cacerts");
       System.setProperty("javax.Net.ssl.trustStorePassword","changeit");

2、在java的build目錄下
keytool -import -file service.crt -keystore j2sdk1.4.2_05\jre\lib\security\cacerts
代碼中不必添加System.setProperty

服務器上修改cer文件目前還沒有權限,先按照1修改不行

在代碼中加入

+          System.out.println(System.getProperty("user.dir"));
+          System.out.println(System.getProperty("java.home"));
+          System.out.println(System.getProperty("java.library.path"));

打印出來的結果如下:

/home/weblogic/bea/user_projects/domains/appsdomain
/home/weblogic/bea/jdk142_11/jre
/home/weblogic/bea/jdk142_11/jre/lib/i386/client:/home/weblogic/bea/jdk142_11/jre/lib/i386:/home/weblogic/bea/jdk142_11/jre/../lib/i386:/home/weblogic/bea/weblogic81/server/lib/linux/i686:/home/weblogic/bea/weblogic81/server/lib/linux/i686/oci920_8

但是字節設置目錄home/weblogic/bea/user_projects/domains/appsdomain/cer為什麼失敗還是不清楚,

用keytool -imaport -file *.cer -keystore cacerts  然後替換掉->>>home/weblogic/bea/jdk142_11/jre/lib/security/cacerts

再次運行,這次終於OK








你可能感兴趣的:(web開發)