`
jiayanjujyj
  • 浏览: 198422 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA客户端连接SSL

    博客分类:
  • JAVA
阅读更多

原文出处:http://ms.mblogger.cn/veaven/posts/18276.aspx
     今天遇到了一个JAVA客户端连接SSL的问题,查了一下javax.net.ssl.HttpsURLConnection的使用,查到这篇不错的文章,转载一下。

 

/**
 * <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;
        }
    }
   
}
 

 

分享到:
评论

相关推荐

    java实现websocket客户端与服务端的连接

    这个端点URI将成为客户端连接的目标地址。 4. **OnOpen、OnClose、OnMessage方法**: 在服务端,你可以定义`onOpen`、`onClose`和`onMessage`方法来处理客户端的打开连接、关闭连接和接收到的消息事件。例如: ```...

    java 客户端和服务器 代码 eclipse

    本主题将深入探讨如何在Eclipse中开发Java客户端和服务器代码,以及如何进行交互。 首先,让我们了解客户端和服务器的基本概念。客户端是发起请求的程序,而服务器则是接收并响应这些请求的程序。在Java中,我们...

    Java 客户端服务器程序 学习笔记

    7. **安全性**:考虑到网络安全,开发者可能还会介绍如何在Java客户端服务器程序中添加加密和身份验证机制,如SSL/TLS协议和数字证书。 通过阅读这篇学习笔记,你可以掌握Java客户端服务器编程的基本概念和实践技巧...

    SSL及HTTPS协议_world_java_https客户端_ssl_distancemiy_

    3. 循环接收客户端连接,创建SSLSocket进行数据交互。 4. 对SSLSocket进行读写操作,注意使用其特有的`getInputStream()`和`getOutputStream()`方法,而非普通Socket的`getInputStream()`和`getOutputStream()`。 ...

    SQLSERVER客户端通过SSL安全服务成功建立安全连接JAR程序包

    在本主题中,我们将深入探讨如何通过Java(Java Archive,简称JAR)程序包实现SQLSERVER客户端与服务器之间的SSL安全连接。 首先,理解SSL协议的基础知识是非常必要的。SSL是一种网络协议,用于在互联网上提供安全...

    基于SSL/TLS协议的FTP客户端和服务器端

    在Java中,实现基于SSL/TLS的FTP客户端需要创建`SSLSocket`连接到服务器,并进行必要的握手过程。服务器端则需创建`SSLServerSocket`来监听连接,并处理客户端的认证请求。整个过程涉及SSL/TLS的初始化、证书管理、...

    客户端与服务器SSL双向认证(客户端:java-服务端:java)

    通过上述步骤,我们可以实现Java客户端和服务器之间的SSL双向认证。在实际应用中,这可以确保数据传输的隐私和完整性,提高系统的安全性。在进行开发时,要时刻关注安全最佳实践,以防止潜在的安全风险。SSL双向认证...

    SSL.rar_JAVA SSL _ssl_ssl java

    希望对大家有所帮助",这暗示了压缩包内的SSLServer.java和SSLClient.java是两个关键文件,分别代表了SSL服务端和客户端的程序示例,用于展示如何在Java中配置和使用SSL连接。 SSLServer.java文件很可能是实现一个...

    java 连接阿里云的mqtt服务(客户端源码).zip

    下面将详细讲解如何使用 Java 客户端源码连接阿里云的 MQTT 服务。 首先,我们需要了解 MQTT 协议的基本概念。MQTT 是一个轻量级的消息发布/订阅协议,设计思想是开放、简单、小巧且易于实现。它使用 TCP/IP 协议栈...

    java访问IBM MQ SSL加密通道

    描述了java程序代码去访问MQ的SSL加密的通道。如何配置JKS,如何配置MQ服务器的SSL秘钥库,如何配置证书制作证书和秘钥库。主要是如何编写java代码去访问SSL通道并取到数据。

    delphi客户端连接JAVA服务端

    本话题聚焦于使用Delphi客户端连接JAVA服务端的技术实现。Delphi,一种强大的面向对象的编程环境,经常用于开发桌面应用程序,而Java则因其跨平台特性在服务端应用广泛。以下将详细介绍如何在Delphi客户端与JAVA...

    java ssl连接 SSLServerSocket

    Java中的SSL连接主要涉及到安全套接层(Secure Socket Layer)技术,用于在互联网上提供安全通信。SSLServerSocket是Java中的一个类,它用于创建服务器端的SSL连接,提供了加密和身份验证的能力,确保数据传输的安全...

    JAVA RMI 传输 SSL加密

    SSL加密确保了数据在传输过程中不被窃取或篡改,这对于处理敏感信息如JMX (Java Management Extensions) 管理操作至关重要。 配置RMI以使用SSL加密涉及以下三个主要步骤: 1. **注册基于SSL的RMI Socket Factories...

    java ftp客户端,服务端

    在Java中,我们可以使用`java.net.Socket`类来创建客户端连接,它代表了两台机器之间的网络连接。Socket编程是基于TCP/IP协议的,确保了数据的可靠传输。要实现FTP客户端,首先需要创建一个Socket连接到FTP服务器,...

    java的ssl客户端编程与LINUX的OpenSSL服务器通讯的实现及有关文

    java的ssl客户端编程与LINUX的OpenSSL服务器通讯的实现及有关文档 附件中包含本人开发工程中使用过的DEMO程序及制作证书的解本文件

    java程序实现ssl

    **SSL(Secure Socket Layer)**是一种广泛应用于网络通信的安全协议,用于在客户端和服务器之间建立安全的加密连接,确保数据传输的隐私性和完整性。在Java编程环境中,通过Java的JSSE(Java Secure Socket ...

    java https ssl 实例 例子

    Java 提供了 SSL SOCKET 编程接口,允许开发者使用 SSL 协议来建立安全连接。Java 的 SSL SOCKET 编程主要包括以下步骤: 1. 创建 SSL SOCKET 对象 2. 建立 SSL 连接 3. 读写数据 十、keytool 证书与密钥管理 ...

    JAVA实现的SSL/TLS双向认证源代码

    通常,SSL/TLS连接采用单向认证,即服务器验证客户端的身份,而客户端不需要验证服务器。但在某些高安全性的场景下,双向认证是必要的,即双方都需要证明自己的身份。这增加了安全性,防止了中间人攻击。 在Java中...

    Tomcat_SSL.rar_JAVA SSL _ssl_ssl java_tomcat_tomcat ssl

    SSL/TLS协议用于在客户端浏览器和服务器之间建立安全的连接,它通过使用公钥和私钥加密技术来保护数据不被中间人攻击。在HTTPS中,SSL/TLS负责加密传输层的数据,而HTTP则处理应用层的通信协议。 接下来,我们来看...

Global site tag (gtag.js) - Google Analytics