java程序访问不可信(自颁发证书)ssl http 资源
2009-12-23 10:49
369 查看
package httpssl;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.Security;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
/**
*
* @author quansheng
*/
public class T2 {
public static void main(String[] args) throws Exception {
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String string, SSLSession ssls) {
return true;
}
};
trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);
URL myURL = new URL("https://211.100.34.105/picring/xxxx");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
HttpsURLConnection httpsConn = (HttpsURLConnection) myURL.openConnection();
InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream());
int respInt = insr.read();
while (respInt != -1) {
System.out.print((char) respInt);
respInt = insr.read();
}
}
private static void trustAllHttpsCertificates() throws Exception {
TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[]{
new javax.net.ssl.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) {
}
}
};
javax.net.ssl.SSLContext sc =
javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
sc.getSocketFactory());
}
}
import java.io.InputStreamReader;
import java.net.URL;
import java.security.Security;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
/**
*
* @author quansheng
*/
public class T2 {
public static void main(String[] args) throws Exception {
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String string, SSLSession ssls) {
return true;
}
};
trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);
URL myURL = new URL("https://211.100.34.105/picring/xxxx");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
HttpsURLConnection httpsConn = (HttpsURLConnection) myURL.openConnection();
InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream());
int respInt = insr.read();
while (respInt != -1) {
System.out.print((char) respInt);
respInt = insr.read();
}
}
private static void trustAllHttpsCertificates() throws Exception {
TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[]{
new javax.net.ssl.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) {
}
}
};
javax.net.ssl.SSLContext sc =
javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
sc.getSocketFactory());
}
}
相关文章推荐
- C# 以 HTTP/SSL(双向) 方式请求 Java Jersey 发布的 Restful 资源与TCPSocket客户端
- 微信小程序免费HTTPS证书申请搭建教程(2)---安装SSL并使用HTTPS访问
- java程序访问http,或https最简单的方法
- crawler_基础之_java.net.HttpURLConnection 访问网络资源
- java在访问https资源时,忽略证书信任问题
- HTTP 403.4 - 禁止访问:需要使用 SSL 查看该资源”错误
- java在访问https资源时,忽略证书信任问题
- 小工具-使用java SSL通过url获得访问转为String-http/https
- 使用Java创建rest 服务 通过HTTP请求访问资源
- Tomcat中设置Java 客户端程序的http(https)访问代理
- 客户端在浏览网站时收到“HTTP 403.4 - 禁止访问:需要使用 SSL 查看该资源”错误,但是网站没有配置为使用 SSL
- Android上Java网络资源访问(二)使用HttpURLConnection多线程下载
- Java 程序(httpclient) 访问https保护的网站
- java httpclient 无证书访问 https
- HTTP 错误 401.3 - 访问被资源 ACL 拒绝
- AFNetworking访问https出现"NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813"
- java htttp 登录返回cookie 通过cookie 访问其他资源
- android http://dl-ssl.google.com/android/eclipse/访问不了
- 正在相菜鸟进发,修炼中......java程序访问Sqlite数据库
- JAVA Runtime.addShutdownHook()方法{拿到线程句柄,在程序关闭之前调用释放资源}