Android C端配置证书

来源:互联网 发布:聚划算计入淘宝搜索吗 编辑:程序博客网 时间:2024/05/21 10:04
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.KeyStore;
import java.security.SecureRandom;


import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManagerFactory;


public class TestTow {
public static void main(String[] args) {
new TestTow().GetHttps();
}


private void GetHttps() 
{
String https = "https://192.168.1.95:8443/HttpsTest/index.jsp";
try 
{
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
TrustManagerFactory tmf = TrustManagerFactory
.getInstance("SunX509");


String pass = "changeit";
FileInputStream in = new FileInputStream("server.keystore");
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(in, pass.toCharArray());
tmf.init(ks);


SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, tmf.getTrustManagers(), new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new MyHostnameVerifier());
HttpsURLConnection conn = (HttpsURLConnection) new URL(https)
.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();


BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null)
{
sb.append(line);
}
System.out.println(sb.toString());


}
catch (Exception e)
{
System.out.println(this.getClass().getName() + "------------"+ e.getMessage());
}
}
private class MyHostnameVerifier implements HostnameVerifier 
{
@Override
public boolean verify(String hostname, SSLSession session)
{
return true;
}
}
}
0 0