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

java SSL https 资料

阅读更多
Keystore  与 trustStore
1. 创建 trustStore
顾名思义,trustStore 持有您所信任的 Queue Manager 签名 CA 所颁发的证书。这意味着当 Java/JMS 客户端连接到 Queue Manager 时,它需要将其证书发送给我们作为初始 SSL 握手的一部分。负责处理所有 SSL 通信的 Java Secure Socket Extension (JSSE) 将通过查找 trustStore 来验证刚刚发送的证书。如果无法验证该证书,则连接将被终止。

要创建 trustStore 并导入证书,您可以使用 IBM Key Management 工具,该工具是 Websphere MQ V6 的一部分:

2. 创建 keyStore

连接到 Queue Manager 后,如果您希望创建客户端身份验证,请完成这一部分的操作。如果还未在该通道上指定客户端身份验证,则不需要完成这一部分所描述的操作。

keyStore 在本质上与 trustStore 相同,但它还持有客户端的个人证书,并且 JSSE 需要使用密码访问。实际上,您可以把个人证书添加到刚才创建的 trustStore 中,它既可以用于 trustStore 也可以用于 keyStore,但以前不需要设置的密码现在需要传递给 JSSE,以使它能够访问您的个人证书。

import java.io.BufferedReader;      
import java.io.BufferedWriter;      
import java.io.InputStreamReader;      
import java.io.OutputStreamWriter;      
import java.net.Socket;      
import java.security.cert.CertificateException;      
import java.security.cert.X509Certificate;      
import javax.net.ssl.SSLContext;      
import javax.net.ssl.SSLSocketFactory;      
import javax.net.ssl.TrustManager;      
import javax.net.ssl.X509TrustManager;      
/**    
* JAVA操作SSL协议,通过Socket访问Https的程序代码例子。    
*     
* @author JAVA世纪网(java2000.net)    
*     
*/     
public class ReadHttpsURL {      
  // 默认的HTTPS 端口      
  static final int HTTPS_PORT = 443;      
  public static void main(String argv[]) throws Exception {      
    // 受访主机      
    String host = "www.google.com";      
    // 受访的页面      
    String url = "/adsense/?sourceid=aso&subid=ZH_CN-ET-AS-ADSBY6&medium=link&hl=zh_CN";      
    // 自定义的管理器      
    X509TrustManager xtm = new Java2000TrustManager();      
    TrustManager mytm[] = { xtm };      
    // 得到上下文      
    SSLContext ctx = SSLContext.getInstance("SSL");      
    // 初始化      
    ctx.init(null, mytm, null);      
    // 获得工厂      
    SSLSocketFactory factory = ctx.getSocketFactory();      
    // 从工厂获得Socket连接      
    Socket socket = factory.createSocket(host, HTTPS_PORT);      
    // 剩下的就和普通的Socket操作一样了      
    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));      
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));      
    out.write("GET " + url + " HTTP/1.0\n\n");      
    out.flush();      
    System.out.println("start   work!");      
    String line;      
    StringBuffer sb = new StringBuffer();      
    while ((line = in.readLine()) != null) {      
      sb.append(line + "\n");      
    }      
    out.close();      
    in.close();      
    System.out.println(sb.toString());      
  }      
}      
/**    
* 自定义的认证管理类。    
*     
* @author JAVA世纪网(java2000.net)    
*     
*/     
class Java2000TrustManager implements X509TrustManager {      
  Java2000TrustManager() {      
    // 这里可以进行证书的初始化操作      
  }      
  // 检查客户端的可信任状态      
  public void checkClientTrusted(X509Certificate chain[], String authType) throws CertificateException {      
    System.out.println("检查客户端的可信任状态...");      
  }      
  // 检查服务器的可信任状态      
  public void checkServerTrusted(X509Certificate chain[], String authType) throws CertificateException {      
    System.out.println("检查服务器的可信任状态");      
  }      
  // 返回接受的发行商数组      
  public X509Certificate[] getAcceptedIssuers() {      
    System.out.println("获取接受的发行商数组...");      
    return null;      
  }      
}    

分享到:
评论

相关推荐

    Java发 Https请求工具类 支持SSL

    在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP的安全协议,它通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)提供加密处理、服务器身份验证和消息完整性检查,以保护...

    java https ssl 实例 例子

    Java HTTPS SSL 实例详解 一、HTTPS 简介 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目标的 HTTP 协议,通过在 HTTP 和 TCP 之间添加一个安全层(SSL/TLS),使得数据传输更加...

    Java中的SSL及HTTPS协议实例源码

    Java中的SSL(Secure Socket Layer)和HTTPS(Hypertext Transfer Protocol Secure)协议是网络通信安全的重要组成部分,尤其在处理敏感信息如用户登录凭证、支付数据等时,它们提供了必要的加密和身份验证机制。...

    Java ssl socket 双向认证

    Java SSL(Secure Socket Layer)套接字是一种用于在两个应用程序之间建立安全通信通道的协议,主要目的是为了确保数据传输的安全性。SSL通过使用加密技术来保护数据,防止未经授权的访问和篡改。在Java中,我们可以...

    java信任SSL证书的工具类

    java信任SSL证书的工具类 忽略HTTPS请求的SSL证书,必须在openConnection之前调用

    ssl.tar.gz_URL HTTPS_https_https java_https ssl_java https

    标题中的“ssl.tar.gz_URL HTTPS_https_https java_https ssl_java https”揭示了我们将讨论的是与HTTPS相关的Java编程实践,特别是关于URL连接的使用。 HTTPS的主要作用是确保网络通信的安全性,通过加密数据来...

    android+java ssldemo

    本文将深入探讨"android+java ssldemo"中的核心知识点,包括SSL/TLS协议的工作原理、双向认证的概念以及在华为手机上进行性能测试的考虑。 首先,SSL/TLS协议是互联网上保障数据传输安全的重要机制,它通过加密通信...

    JAVA实现SSL协议

    Java 实现 SSL(Secure Socket Layer)协议主要用于在网络通信中提供安全性和私密性,它通过加密数据和验证身份来确保信息在互联网上的安全传输。在Java中,SSL协议的实现主要依赖于`java.security`和`javax.net.ssl...

    java_https_ssl

    总结,HTTPS通过SSL/TLS协议提供了网络通信的安全保障,包括数据加密、服务器身份验证等,Java提供了丰富的API支持开发者实现安全的HTTPS连接。在实际应用中,合理配置和管理证书,以及了解SSL/TLS的工作原理,对于...

    Java SSLSocket的使用

    `SSLSocket`是Java标准库`javax.net.ssl`包的一部分,主要应用于HTTPS、SMTPS等需要安全通信的协议中。本文将深入探讨`SSLSocket`的使用方法和相关知识点。 首先,我们了解`SSLSocket`的基本概念。`SSLSocket`是在...

    java_ssl.rar_JAVA SSL _The Client_ssl_ssl java

    在"java_ssl.rar_JAVA SSL _The Client_ssl_ssl java"这个压缩包中,可能包含的是关于Java SSL连接服务器和客户端的相关教程或代码示例。 首先,我们来详细了解一下Java中的SSL连接过程: 1. **握手阶段**:当...

    https的get和post请求,去除ssl校验的java工具类

    java的get和post请求,获取json的工具类,https时会存在ssl校验的问题,工具会自动去除ssl校验。

    Java实现SSL双向认证的方法

    Java中的SSL双向认证是一种安全通信机制,用于确保服务器和客户端之间的通信不仅加密,而且双方的身份都得到验证。这种机制在需要高安全性交互的应用场景中,如金融交易、企业内部网络通信等,尤其重要。 SSL...

    SSL.rar_JAVA SSL _ssl_ssl java

    标题"SSL.rar_JAVA SSL _ssl_ssl java"表明这个压缩包包含的是关于Java中实现SSL/TLS协议的示例代码,可能是服务器端和客户端的简单实现。 描述中提到"SSL加密简单的服务端和客户端书写.希望对大家有所帮助",这...

    java 调用https webservice实例及axis包

    在Java中,通过`javax.net.ssl`包提供的类可以支持HTTPS连接。 Apache Axis是一款开源的Web Service框架,它使得Java开发者能够方便地创建和调用Web Service。对于HTTPS的支持,Axis提供了相应的配置和工具。 调用...

    ssl_java.zip

    Java平台提供了一套完整的API,即JSSE(Java Secure Socket Extension),来支持SSL协议。在Java中实现SSL双向认证,也被称为mutual authentication,是指客户端和服务器都需要向对方证明自己的身份。以下将详细讲解...

    javaSSL代码

    Java SSL(Secure Socket Layer)是Java平台用于实现安全网络通信的API,它为应用程序提供了创建安全套接字层(SSL)或传输层安全(TLS)连接的能力。在Java中,SSL主要用于加密网络通信,确保数据在传输过程中的...

    Java Https请求,跳过证书,直接访问

    在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种用于在互联网上安全传输数据的协议,它基于HTTP,但提供了额外的安全性层,通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)来加密...

Global site tag (gtag.js) - Google Analytics