Dengan perkembangan sains dan teknologi, komunikasi rangkaian telah menjadi salah satu alat penting untuk penghantaran maklumat dalam masyarakat moden. Tetapi pada masa yang sama, penghantaran maklumat pada rangkaian menghadapi risiko serangan berniat jahat dan kecurian, jadi keselamatan amat penting. Berdasarkan ini, protokol HTTPS wujud. Ia adalah protokol yang menambah penyulitan SSL/TLS pada protokol HTTP untuk memastikan keselamatan penghantaran rangkaian.
Sebagai bahasa yang digunakan secara meluas dalam pembangunan rangkaian, Java secara semulajadi menyediakan API yang kaya untuk menyokong protokol HTTPS. Artikel ini akan memperkenalkan cara menggunakan protokol HTTPS untuk penghantaran data dalam Java.
1. Persediaan
Apabila kita ingin menggunakan protokol HTTPS di Java, kita perlu membuat persediaan berikut:
1. Dapatkan sijil SSL
Prasyarat untuk menggunakan protokol HTTPS untuk menghantar data ialah sijil diperlukan untuk operasi penyulitan dan penyahsulitan. Jadi kita perlu mendapatkan sijil SSL di bahagian pelayan, yang biasanya dikeluarkan oleh organisasi CA.
2. Import sijil
Selepas kami memperoleh sijil, untuk menggunakannya dalam Java, kami perlu mengimport sijil tersebut ke dalam projek tersebut >
① Gunakan alat OpenSSL untuk mengekstrak kunci awam dalam sijilopenssl s_client -showcerts -connect www.xxx.com:443 </dev/null|openssl x509 -outform PEM>cert_file.pem
public class SSLUtil { public static SSLContext getSSLContext(String certPath, String password) throws Exception { KeyStore keystore = KeyStore.getInstance("JKS"); keystore.load(new FileInputStream(certPath), password.toCharArray()); TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509"); tmf.init(keystore); SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, tmf.getTrustManagers(), null); return sslContext; } }
URL url=new URL("https://www.xxx.com/test");
rreee
3 pengepala kaedah dan permintaanHttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type","application/json");
SSLContext sslContext=SSLUtil.getSSLContext(certPath,password); conn.setSSLSocketFactory(sslContext.getSocketFactory());
conn.setDoOutput(true); OutputStream os=conn.getOutputStream(); os.write(param.getBytes(Charset.forName("UTF-8"))); os.flush(); os.close();
Atas ialah kandungan terperinci Menggunakan HTTPS untuk penghantaran data dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!