剛剛開始做企業網站,修改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