以下内容转自:http://ms.mblogger.cn/veaven/posts/18276.aspx
最近高了一个HTTPS的服务器部署,并且要实现java客户端连接到https
折腾了半天总算搞明白是怎么一回事了
以下:
package com.ptnetwork.itsmg.util;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.net.HttpURLConnection;
import org.apache.xerces.impl.dv.util.Base64;
/**
* @author lyw
*/
public class ssltest {
protected String connect(String strUrl) {
trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);
URL url = new URL(strUrl);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
连接到HTTPS服务器
......
}
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. "
+ session.getPeerHost());
return true;
}
};
private static void trustAllHttpsCertificates() throws Exception {
// Create a trust manager that does not validate certificate chains:
javax.net.ssl.TrustManager[] trustAllCerts =
new javax.net.ssl.TrustManager[1];
javax.net.ssl.TrustManager tm = new miTM();
trustAllCerts[0] = tm;
javax.net.ssl.SSLContext sc =
javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
sc.getSocketFactory());
}
public static class miTM implements javax.net.ssl.TrustManager,
javax.net.ssl.X509TrustManager {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public boolean isServerTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public boolean isClientTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) throws
java.security.cert.CertificateException {
return;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) throws
java.security.cert.CertificateException {
return;
}
}
}
分享到:
相关推荐
Websphere MQ JavaJMS 客户端的 SSL 配置.doc
Java中的SSL及HTTPS协议实例源码,使用SSL套接字的HTTPS服务器端,接受客户端的一个连接
处理SQLSERVER客户端连接无法通过使用安全套接字层(SSL)加密,同时能够使 SQL Server 建立安全连接问题JAR包。
本程序基于SSL/TLS协议的三元组认证的安全文件传输系统的设计和实现。采用java实现,java对SSL/TLS协议和加密技术封装的比较好,有兴趣可以下下来看一下
java的ssl客户端编程与LINUX的OpenSSL服务器通讯的实现及有关文档 附件中包含本人开发工程中使用过的DEMO程序及制作证书的解本文件
ssl 生成文件key 包含服务端、客户端、并解决乱码问题
maven工程,java版本的wss客户端(不是ws客户端,SSL Websocket),可以正常连wss服务器和收发消息。 注意:代码中的wss地址需要根据自己的实际地址进行修改。
Java演示创建SSL套接字及HTTPS协议,使用8080端口创建一个ServerSocket对象,也就是服务器套接字,返回缺省的SocketFactory对象,接受客户端的一个连接,并返回Hello,world.生成PrintWriter对象,用于输出信息。
ssl java实现
JBoss EAP 6 中的 #CXF SSL 客户端 这是一个展示如何设置 JBossWS CXF SSL 客户端的项目。 除此之外,它还展示了如何在 EAP 6 中自动安装 HTTPS 连接并配置独立客户端以使用 JBoss LogManager。 此示例将在客户端和...
掌握两种方式的TLS :locked_with_key: 本教程将引导您完成通过TLS... 一段时间后,我发现有更多的Java客户端,并且还有一些基于Kotlin和Scala的客户端。 配置ssl / tls可能很困难,每个客户端都需要不同的设置。 我想
该项目是服务器的开源Java实现。 基于服务器框架。 结帐 根据Apache License 2.0许可。 产品特点 支持0.7 ... 0.9.16 ( netty -socketio 1.6.6)和1.0+ (netty-socketio最新版本)版本 支持XHR轮询传输 支持...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
摘要:Java源码,网络相关,HTTPS协议 Java中的SSL及HTTPS协议实例源码,使用SSL套接字的HTTPS服务器端,接受客户端的一个连接,并返回Hello,world. 本例中使用8080端口创建SSL服务器套接字,返回缺省的SocketFactory...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
jdbc连接mysql驱动包(mysql-connector-java-8.0.16.jar和mysql-connector-java-5.1.47.jar)。在java程序中使用JDBC,Class.forName()方法,参数用"com.mysql.cj.jdbc.Driver" (com.mysql.jdbc.Driver已经弃用了)...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...