`
ming_fanglin
  • 浏览: 225049 次
  • 性别: 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中的SSL及HTTPS协议实例源码

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

    java https ssl 实例 例子

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

    java信任SSL证书的工具类

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

    Java ssl socket 双向认证

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

    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...

    java17 https 忽略ssl认证, httpclient5 ,springboot3.2.7 脚手架

    springboot3.2.7 基于java17 ,测试https 接口,基于 RestTemplate 实现

    java支持https的Post请求

    本文将详细介绍如何在Java中实现支持HTTPS的POST请求,包括如何处理SSL证书校验问题。 首先,理解HTTPS的工作原理至关重要。HTTPS基于SSL/TLS协议,它在HTTP层和TCP/IP层之间添加了一个安全层,用于加密数据传输并...

    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. **握手阶段**:当...

    SSL.rar_JAVA SSL _ssl_ssl java

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

    Java实现SSL双向认证的方法

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

    SSL跳过证书 java

    SSL跳过证书 java ctx.init(null, new TrustManager[] { tm }, new java.security.SecureRandom()); // SSLConnectionSocketFactory ssf = new SSLConnectionSocketFactory( // ctx, NoopHostnameVerifier.INSTANCE)...

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

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

    java访问https网址下载文件(含证书)

    在Java中,HTTPS访问涉及到`java.net.URL`,`java.net.HttpURLConnection`以及可能的`javax.net.ssl.SSLContext`和`TrustManager`类。 1. **配置SSL上下文**: 当你访问HTTPS站点时,Java默认的TrustStore可能不...

Global site tag (gtag.js) - Google Analytics