HTTPS证书校验异常怎么解决?
HTTPS证书校验异常,验证不通过要怎么解决?下面本篇文章给大家介绍一下Https请求验证证书失败的解决方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
报错:unable to find valid certification path to requested target
解决办法:
1、导入证书到本地证书库
2、信任所有SSL证书
最好的解决办法或许是信任所有SSL证书,因为某些时候不能每次都手动的导入证书非常麻烦。现在封装了个方法,在连接openConnection的时候忽略掉证书就行了。
SslUtils.java
import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; public class SslUtils {private static void trustAllHttpsCertificates() throws Exception { TrustManager[] trustAllCerts = new TrustManager[1]; TrustManager tm = new miTM(); trustAllCerts[0] = tm; SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, null); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } static class miTM implements TrustManager,X509TrustManager { public X509Certificate[] getAcceptedIssuers() { return null; } public boolean isServerTrusted(X509Certificate[] certs) { return true; } public boolean isClientTrusted(X509Certificate[] certs) { return true; } public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException { return; } public void checkClientTrusted(X509Certificate[] certs, String authType) throws CertificateException { return; } } /** * 忽略HTTPS请求的SSL证书,必须在openConnection之前调用 * @throws Exception */ public static void ignoreSsl() throws Exception{ HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String urlHostName, SSLSession session) { System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost()); return true; } }; trustAllHttpsCertificates(); HttpsURLConnection.setDefaultHostnameVerifier(hv); } }
SslTest.java:
import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import org.apache.commons.io.IOUtils; public class SslTest { public String getRequest(String url,int timeOut) throws Exception{ URL u = new URL(url); if("https".equalsIgnoreCase(u.getProtocol())){ SslUtils.ignoreSsl(); } URLConnection conn = u.openConnection(); conn.setConnectTimeout(timeOut); conn.setReadTimeout(timeOut); return IOUtils.toString(conn.getInputStream()); } public String postRequest(String urlAddress,String args,int timeOut) throws Exception{ URL url = new URL(urlAddress); if("https".equalsIgnoreCase(url.getProtocol())){ SslUtils.ignoreSsl(); } URLConnection u = url.openConnection(); u.setDoInput(true); u.setDoOutput(true); u.setConnectTimeout(timeOut); u.setReadTimeout(timeOut); OutputStreamWriter osw = new OutputStreamWriter(u.getOutputStream(), "UTF-8"); osw.write(args); osw.flush(); osw.close(); u.getOutputStream(); return IOUtils.toString(u.getInputStream()); } public static void main(String[] args) { try { SslTest st = new SslTest(); String a = st.getRequest("https://xxx.com/login.action", 3000); System.out.println(a); } catch (Exception e) { e.printStackTrace(); } } }
更多相关知识,请关注PHP中文网!
Atas ialah kandungan terperinci HTTPS证书校验异常怎么解决?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan NginxProxyManager untuk melaksanakan proksi terbalik di bawah protokol HTTPS Dalam beberapa tahun kebelakangan ini, dengan populariti Internet dan kepelbagaian senario aplikasi, kaedah capaian laman web dan aplikasi menjadi semakin kompleks. Untuk meningkatkan kecekapan dan keselamatan akses laman web, banyak tapak web telah mula menggunakan proksi terbalik untuk mengendalikan permintaan pengguna. Proksi terbalik untuk protokol HTTPS memainkan peranan penting dalam melindungi privasi pengguna dan memastikan keselamatan komunikasi. Artikel ini akan memperkenalkan cara menggunakan NginxProxy

Cara menggunakan NginxProxyManager untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Dengan perkembangan Internet, semakin banyak laman web mula menggunakan protokol HTTPS untuk menyulitkan penghantaran data untuk meningkatkan keselamatan data dan perlindungan privasi pengguna. Memandangkan protokol HTTPS memerlukan sokongan sijil SSL, sokongan teknikal tertentu diperlukan semasa menggunakan protokol HTTPS. Nginx ialah pelayan HTTP yang berkuasa dan biasa digunakan dan pelayan proksi terbalik, dan NginxProxy

Nginx ialah perisian pelayan web berprestasi tinggi dan pelayan proksi terbalik yang berkuasa dan pengimbang beban. Dengan perkembangan pesat Internet, semakin banyak laman web mula menggunakan protokol SSL untuk melindungi data pengguna yang sensitif, dan Nginx juga menyediakan sokongan SSL yang kuat, menjadikan prestasi keselamatan pelayan web lebih jauh. Artikel ini akan memperkenalkan cara mengkonfigurasi Nginx untuk menyokong protokol SSL dan melindungi prestasi keselamatan pelayan web. Apakah protokol SSL? SSL (SecureSocket

Aliran kerja https termasuk langkah-langkah seperti permintaan yang dimulakan oleh klien, respons pelayan, jabat tangan SSL/TLS, penghantaran data dan pemaparan sisi klien Melalui langkah ini, keselamatan dan integriti data semasa penghantaran dapat dipastikan.

Langkah-langkah konfigurasi: 1. Dapatkan sijil SSL; 2. Konfigurasikan sijil SSL 3. Edit fail konfigurasi Tomcat; Pengenalan terperinci: 1. Anda perlu mendapatkan sijil SSL, sama ada sijil yang ditandatangani sendiri atau sijil SSL yang sah daripada agensi pensijilan (seperti Let's Encrypt); 2. Letakkan sijil SSL yang diperolehi dan fail kunci peribadi pada pelayan dan memastikan bahawa fail ini Terletak di lokasi yang selamat, hanya pengguna yang mempunyai kebenaran yang mencukupi boleh mengakses; 3. Edit fail konfigurasi Tomcat, dsb.

Sebab ralat ialah ralat ProxySchemeUnknown(proxy.scheme) urllib3 biasanya disebabkan oleh penggunaan protokol proksi yang tidak disokong. Dalam kes ini, urllib3 tidak mengenali jenis protokol pelayan proksi dan oleh itu tidak boleh menggunakan proksi untuk sambungan rangkaian. Untuk menyelesaikan isu ini, anda perlu memastikan bahawa anda menggunakan protokol proksi yang disokong, seperti HTTP atau https Cara menyelesaikan Untuk menyelesaikan isu ini, anda perlu memastikan bahawa anda menggunakan protokol proksi yang disokong, seperti HTTP atau HTTPS . Anda boleh menyelesaikan masalah ini dengan menetapkan parameter proksi urllib3. Jika anda menggunakan proksi http, contoh kod adalah seperti berikut: importurllib3http

Dalam era Internet hari ini, komunikasi yang selamat telah menjadi bahagian yang sangat diperlukan. Terutamanya dalam komunikasi HTTPS, cara memastikan keselamatannya amat penting. Sebagai pelayan web popular dan pelayan proksi terbalik, tembok api Nginx juga boleh memainkan peranan penting dalam memastikan komunikasi selamat HTTPS. Artikel ini akan membincangkan tembok api Nginx dari aspek berikut. Penyulitan TLS/SSL Keselamatan komunikasi HTTPS terutamanya berdasarkan teknologi penyulitan TLS/SSL, yang boleh menghalang data daripada dihantar semasa penghantaran.

Perbezaan antara pengesahan sehala dan pengesahan dua hala: Pengesahan sehala: merujuk kepada pelanggan yang mengesahkan sijil sisi pelayan dan pelayan tidak perlu mengesahkan sijil pelanggan. Pengesahan dua hala: merujuk kepada pelanggan yang mengesahkan sijil sisi pelayan, dan pelayan juga perlu mengesahkan sijil pelanggan melalui sijil kunci awam CA. Proses jabat tangan terperinci: Pengesahan sehala Penyemak imbas menghantar permintaan sambungan kepada pelayan keselamatan. 1. Pelayan menghantar sijil sendiri dan maklumat berkaitan sijil kepada pelayar klien. 2. Pelayar klien menyemak sama ada sijil yang dihantar oleh pelayan dikeluarkan oleh pusat CA yang dipercayainya. Jika ya, teruskan melaksanakan perjanjian jika tidak, penyemak imbas pelanggan akan memberi pelanggan mesej amaran: memberi amaran kepada pelanggan bahawa sijil ini tidak boleh dipercayai dan bertanya kepada pelanggan jika ia perlu diteruskan. 3. Ambil pelanggan