Https網站中的安全證書導入到java中的cacerts證書庫


提示: 
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 

一個很簡單的富客戶端到WEB 服務器的連接,基本都能夠正常建立連接,唯獨公司NEXT、TIMS總是報javax.net.ssl.SSLHandshakeException和 sun.security.provider.certpath.SunCertPathBuilderException的異常,網上轉了轉,找到幾篇 前輩的文章,摘下點重點以便以后繼續剽與竊。 

在項目開發中,有時會遇到與SSL安全證書導入打交道,如何把證書導入java的cacerts證書庫?簡單的用NEXT做個演示: 

第一步:IE打開https://next.xxxcorp.cn,把要導入java證書庫的證書下載 
        在該網頁安全警報彈出窗口上查看證書--詳細信息--復制到文件 
        會彈出一個證書導出向導對話框,按提示一直下一步直到完成。 
        我把證書保存在C盤,名字為NEXT_CertKey.cer。 

第二步:將上面導出的證書導入java中的cacerts證書庫 
        cmd進入C:\Program Files\Java\jdk1.5.0_06\jre\lib\security目錄 
        敲入如下命令回車執行 
       
keytool -import -alias cacerts 
                -keystore C:\Program Files\Java\jdk1.5.0_06\jre\lib\security\cacerts 
                -file C:\NEXT_CertKey.cer 
                -trustcacerts 

        此時命令行會提示你輸入cacerts證書庫密碼, 
        java中cacerts證書庫默認密碼為changeit, 
        Y確認即可,OK,認證已添加至keystore。 

附:URLConnection、URL 
try { 
      URL url; 
      url = new URL("https://next.xxxcorp.cn"); 
      urlConnection = (HttpURLConnection) url.openConnection(); 
      urlConnection.setDoOutput(true); 
      
      BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
      String input = null; 
      while ((input = reader.readLine()) != null) { 
           System.out.println(input); 
      } 
      reader.close(); 
      urlConnection.disconnect(); 
} catch (IOException e) { 
      e.printStackTrace(); 
} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM