SSL单向验证

SSL单向验证为拦截网络通道层数据被截取,所以在客户端被调用的时候点击信任即可,程序调用同样

1、生成证书

keytool -genkey -v -alias jifubao -keyalg RSA -keystore D:\jifubao.keystore -validity 36500

2、配置tomcat(最好放在tomcat里的conf下边)

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

keystoreFile="conf/jifubao.keystore"  keystorePass="123456"

clientAuth="false" sslProtocol="TLS" />

3、浏览器访问

直接访问https即可

4、程序访问:

package com.elephant.car.common;

import java.io.*;

import java.net.*;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.*;

/**

* https调用测试

* ssl单项使用

* @author xuanxy

*

*/

public class TrustSSL {

private static class TrustAnyTrustManager implements X509TrustManager {

public void checkClientTrusted(X509Certificate[] chain, String authType)

throws CertificateException {

}

public void checkServerTrusted(X509Certificate[] chain, String authType)

throws CertificateException {

}

public X509Certificate[] getAcceptedIssuers() {

return new X509Certificate[] {};

}

}

private static class TrustAnyHostnameVerifier implements HostnameVerifier {

public boolean verify(String hostname, SSLSession session) {

return true;

}

}

public static void main(String[] args) throws Exception {

InputStream in = null;

OutputStream out = null;

byte[] buffer = new byte[4096];

String str_return = "";

try {

SSLContext sc = SSLContext.getInstance("SSL");

sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },

new java.security.SecureRandom());

URL console = new URL(

"https://192.168.1.154:8443/jifubao/user/login.json?phone_num=13212324322&password=123456&device_id=4444444&os_ver=ios22&os_name=iphone2&os_type=ios");

HttpsURLConnection conn = (HttpsURLConnection) console

.openConnection();

conn.setSSLSocketFactory(sc.getSocketFactory());

conn.setHostnameVerifier(new TrustAnyHostnameVerifier());

conn.connect();

InputStream is = conn.getInputStream();

DataInputStream indata = new DataInputStream(is);

String ret = "";

while (ret != null) {

ret = indata.readLine();

if (ret != null && !ret.trim().equals("")) {

str_return = str_return

+ new String(ret.getBytes("ISO-8859-1"), "GBK");

}

}

conn.disconnect();

} catch (ConnectException e) {

System.out.println("ConnectException");

System.out.println(e);

throw e;

} catch (IOException e) {

System.out.println("IOException");

System.out.println(e);

throw e;

} finally {

try {

in.close();

} catch (Exception e) {

}

try {

out.close();

} catch (Exception e) {

}

}

System.out.println(str_return);

}

}

时间: 2024-10-08 23:18:46

SSL单向验证的相关文章

iOS开发 - 用AFNetworking实现https单向验证,双向验证

https相关 自苹果宣布2017年1月1日开始强制使用https以来,htpps慢慢成为大家讨论的对象之一,不是说此前https没有出现,只是这一决策让得开发者始料未及,博主在15年的时候就做过https的接口,深知此坑之深,原因就是自身对这方面知识不了解加上网上的资料少,除此外还有博客不知对错就互相转载,导致当时网上几乎找不到能用的代码,这一点,博主说的毫不夸张. 鉴于此,博主一直想填一下这个坑,多增加一些正确的代码,来供广大开发者使用,后来一直被搁置,经过尝试后,博主现将整理好的代码发布在

SSL双向认证和SSL单向认证的流程和区别

refs: SSL双向认证和SSL单向认证的区别https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证!https://cloud.tencent.com/developer/news/233610 SSL/TLS 双向认证(一) -- SSL/TLS工作原理https://blog.csdn.net/wuliganggang/article/details/78428866 双向认证 SSL 协议要求服务器和用户双方都有证书.单向认证

HTTPS请求 SSL证书验证

import urllib2 url = "https://www.12306.cn/mormhweb/" headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"} request = urllib2.Request(ur

Xposed+JustTrustMe关闭ssl证书验证

安卓手机需要Root,该方法有手机变砖风险,建议在模拟器下操作!! XposedInstaller(xposed框架)是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作. JustTrustMe是Github上的一个开源工程,他是一个Xposed模块,用来禁止SSL证书验证. 下载地址:xposedinstaller.apk:https://www.lanzous.com/iafcw5eJustTrustMe.a

ssl证书验证

当我们在访问https网站时,浏览器就会自动下载该网站的SSL证书,并对证书的安全性进行检查. 其他概念不说了,有效期之类的验证也不说了.只说数字证书的真实性和可信性验证. 1.CA下发给网站的证书是分层的证书链,从根证书开始一层一层直到网站证书.要验证某一层证书是否确实由上级CA发放的需要验证附带在该证书上的由上级CA通过签名函数及私钥生成的数字签名.数字签名的解密需要上级CA的公钥,这个公钥就明文保存在证书链中的上层证书中.而根证书是自己给自己签名,也就是根证书的签名也是靠自己保存的公钥来解

httpclient 3.1跳过https请求SSL的验证

一.因为在使用https发送请求的时候会涉及,验证方式.但是这种方式在使用的时候很不方便.特别是在请求外部接口的时候,所以这我写了一个跳过验证的方式.(供参考) 二.加入包,这里用的是commons-httpclient 3.1 的包.一般请求采用最新的httpclient4.5就可以了 <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</

tomcat6.0+jdk1.6 ssl单向配置

1,通过jdk自带的keytool生成.keystore文件执行下面的命令: /usr/bin/keytool -genkey -alias xiaomaodan -keyalg RSA -validity 36500  -keystore c:\keystore 执行上面的命令后需要输入相关的证书信息 Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: loca

SSL单向、双向认证的过程

在昨天的面试过程中谈单之前开发使用的EJBCA,对于认证这块我不是很了解内部的过程,晚上回来看了下  大致如下: 认证就是发消息的客户端和服务端之间相互认证确认的过程,又分为单向和双向认证:大概是下面这样的过程 一.单向认证: 1.客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到客户端: 2.客户端用服务器发送来的公钥对数据进行解密,然后在客户端使用服务器发送过来的公钥对数据加密传给服务器端,服务器用私钥对数据进行解

vdsm的SSL证书验证过程

1. Copy the VDSM certificate of the RHEV-H(Red Hat Enterprise Virtualization Hypervisor ) host to the RHEV-M machine. This certificate should be in the host, inside the file /etc/pki/vdsm/certs/vdsmcert.pem. 译:复制虚拟机管理平台主机的vdsm证书到虚拟机管理中心的机器上,这个证书的位置在/