找回密碼
 立即註冊
搜索
熱搜: SQL C# AI F1
查看: 1342|回復: 0

[Java] JAVA 忽略 HTTPS 驗證

[複製鏈接]
灌水成績
725
3
111764
主題
回帖
積分

等級頭銜

積分成就 威望 : 999
貢獻 : 999
金錢 : 108039
精華 : 0
在線時間 : 332 小時
最後登錄 : 2026-5-5

豐功偉業

分享
分享 分享到Facebook

好康介紹

準備中
發表於 2015-12-2 17:38:18 | 顯示全部樓層 |閱讀模式
琪琪小站免責聲明
本論壇仍是開放式討論平台,本論壇對於所有討論的真實性、完整性及立場等,不負任何法律責任。
而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。
於有關情形下,用戶應尋求專業意見 (如涉及醫療、法律或投資等問題)。
由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。
kikishop有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。
切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。
本網站保留一切法律權利。
這個問題,大概是出現在連線到測試機時,因為該測試機並沒有https驗證,但又要以https網址為開頭,
而連線過去的時候,由於該測試機並沒有第三方驗證,但又要讓他過關,所以才需要忽略https驗證。
這時候Java如果連到https,但沒忽略的話,會出現下面的Exception
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target


[mw_shl_code=java,true] /**
         * 忽略驗證https
         */
    public static void igoreVerify() throws Exception
    {

        ignoreVerifyHttpsTrustManager();
        ignoreVerifyHttpsHostName();
    }

    /**
         * 忽略驗證https
         */
    public static void ignoreVerifyHttpsHostName()
    {
        HostnameVerifier hv = new HostnameVerifier()

        {

              public boolean verify(String urlHostName, SSLSession session)

              {

                     System.out.println("Warning: URL Host: "+urlHostName+" vs. "+session.getPeerHost());

                     return true;

              }

        };

        HttpsURLConnection.setDefaultHostnameVerifier(hv);
    }

    /**
         * 忽略驗證https
         */
    public static void ignoreVerifyHttpsTrustManager() throws Exception
    {
        TrustManager[] trustAllCerts = new TrustManager[] {
                new X509TrustManager(){
                    public java.security.cert.X509Certificate[] getAcceptedIssuers()
                    {
                            return null;
                    }

                    public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
                    {
                    }

                    public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
                    {
                    }
                }
        };

        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    }[/mw_shl_code]

琪琪小站免責聲明
本論壇仍是開放式討論平台,本論壇對於所有討論的真實性、完整性及立場等,不負任何法律責任。
而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。
於有關情形下,用戶應尋求專業意見 (如涉及醫療、法律或投資等問題)。
由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。
kikishop有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。
切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。
本網站保留一切法律權利。
FengLeo Internet Multimedia Services WorkStation
*********************************************************
Genie
WebUrl:https://www.fengleo.com/
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|Ki Ki Shop |網站地圖

GMT+8, 2026-5-6 04:25 , Processed in 0.090145 second(s), 26 queries .

Powered by FengLeo X3.5

© 2020-2025 Fengleo.com

快速回復 返回頂部 返回列表