听到有人在用,所以自己随便搜了搜试了下,这里就是简单记录

就是操作了一遍这篇博文

https://blog.csdn.net/a495614205/article/details/12648939

import java.io.FileInputStream;
import java.io.*;
import java.net.Socket;
import java.security.KeyStore;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory; public class KeystoreTest {
/**
* name:KeystoreTest
* author:suju
*/
public static void main(String[] args) throws Exception{
String key="D:/Users/***/.keystore";
KeyStore keystore=KeyStore.getInstance("JKS");
//keystore的类型,默认是jks
keystore.load(new FileInputStream(key),"密码".toCharArray());
//创建jkd密钥访问库 123456是keystore密码。
KeyManagerFactory kmf=KeyManagerFactory.getInstance("SunX509");
kmf.init(keystore,"密码".toCharArray());
//asdfgh是key密码。
//创建管理jks密钥库的x509密钥管理器,用来管理密钥,需要key的密码
SSLContext sslc=SSLContext.getInstance("SSLv3");
// 构造SSL环境,指定SSL版本为3.0,也可以使用TLSv1,但是SSLv3更加常用。
sslc.init(kmf.getKeyManagers(),null,null);
//第二个参数TrustManager[] 是认证管理器,在需要双向认证时使用,
//构造ssl环境
SSLServerSocketFactory sslfactory=sslc.getServerSocketFactory();
SSLServerSocket serversocket=(SSLServerSocket) sslfactory.createServerSocket(9999);
//创建serversocket,监听,并传输数据来验证授权
for(int i=0;i<15;i++)
{
final Socket socket=serversocket.accept();
new Thread(){
public void run()
{
try{
InputStream is=socket.getInputStream();
OutputStream os=socket.getOutputStream();
byte[] buf=new byte[1024];
int len=is.read(buf);
System.out.println(new String(buf));
os.write("ssl test".getBytes());
os.close();
is.close();
}catch(Exception e)
{}
}
}.start();
}
serversocket.close();
}
}
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.KeyStore;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory; public class KeystoreTestClient {
/**
* name:KeystoreTestClient
* author:suju
*/
public static void main(String[] args) throws Exception{
String key="D:/Users/***/client";
KeyStore keystore=KeyStore.getInstance("JKS"); //创建一个keystore来管理密钥库
keystore.load(new FileInputStream(key),"密码".toCharArray());
//创建jkd密钥访问库
TrustManagerFactory tmf=TrustManagerFactory.getInstance("SunX509");
tmf.init(keystore); //验证数据,可以不传入key密码
//创建TrustManagerFactory,管理授权证书
SSLContext sslc=SSLContext.getInstance("SSLv3");
// 构造SSL环境,指定SSL版本为3.0,也可以使用TLSv1,但是SSLv3更加常用。
sslc.init(null,tmf.getTrustManagers(),null);
//KeyManager[] 第一个参数是授权的密钥管理器,用来授权验证。第二个是被授权的证书管理器,
//用来验证服务器端的证书。只验证服务器数据,第一个管理器可以为null
//构造ssl环境
SSLSocketFactory sslfactory=sslc.getSocketFactory();
SSLSocket socket=(SSLSocket) sslfactory.createSocket("127.0.0.1",9999);
//创建serversocket通过传输数据来验证授权
InputStream is=socket.getInputStream();
OutputStream os=socket.getOutputStream();
os.write("client".getBytes());
byte[] buf=new byte[1024];
int len=is.read(buf);
System.out.println(new String(buf));
os.close();
is.close();
}
}

其余就是证书相关的操作

生成
keytool -genkeypair
查看
keytool -list -v
使用其他keystore来创建key,如果keystore不存在就创建一个新的。
keytool --genkeypair -keystore c:\client
导出一个key
keytool -exportcert -alias mykey -file c:\mykey.cer
导入一个key到一个keystore
keytool -importcert -alias mykey -file c:\mykey.cer -keystore c:\client 过程中如果文件没有权限或者目录问题之类的自己调整下就OK

Java ssl认证记录的更多相关文章

  1. 自定义SSL证书实现单双向ssl认证记录

    自定义SSL证书: 1.ca证书 #openssl genrsa -out ca.key 2048 #openssl req -new -key ca.key -out ca.csr #openssl ...

  2. java中 SSL认证和keystore使用

    java中 SSL认证和keystore使用 2013-10-12 11:08 10488人阅读 评论(0) 收藏 举报   目录(?)[+]     好久没用过SSL认证了,东西久不用,就有点生疏. ...

  3. SSL 认证之后,request.getScheme()获取不到https的问题记录

    通过浏览器输入https://www.xxx.com,request.getScheme()获取到的确实http而不是https通过request.getRequestURL()拿到的也是http:/ ...

  4. Java 8 学习记录

    Java 8 学习记录 官方文档 https://docs.oracle.com/javase/8/ https://docs.oracle.com/javase/8/docs/index.html ...

  5. RSA原理、ssl认证、Tomcat中配置数字证书以及网络传输数据中的密码学知识

      情形一:接口的加.解密与加.验签 rsa不是只有加密解密,除此外还有加签和验签.之前一直误以为加密就是加签,解密就是验签.这是错误的! 正确的理解是: 数据传输的机密性:公钥加密私钥解密是密送,保 ...

  6. java ssl https 连接详解 生成证书 tomcat keystone

    java ssl https 连接详解 生成证书 我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over ...

  7. MySQL开启SSL认证,以及简单优化

    1.1 MySQL开启SSL认证 #生成一个 CA 私钥 [root@db01 ssl]# openssl genrsa 2048 > ca-key.pem Generating RSA pri ...

  8. Difference between trustStore and keyStore in Java - SSL

    Difference between trustStore and keyStore in Java - SSL   trustStore vs keyStore in Java trustStore ...

  9. 申请Namecheap的.me 顶级域名以及申请ssl认证--github教育礼包之namecheap

    关于教育礼包的取得见另一篇随笔,在那里笔者申请了digital ocean的vps(虚拟专用主机),跟阿里云差不多,不过个人感觉比阿里云便宜好用一点. 有了自己的主机ip,就想到申请域名,方便好记,也 ...

随机推荐

  1. 原型设计工具——axure认识与使用

    原型设计工具——axure认识与使用 10款原型设计工具推荐 pasting

  2. 廖雪峰Java6 IO编程-2input和output-4Filter模式

    1.JDK提供的InputStream分为两类: 直接提供数据的InputStream * FileInputStream:从文件读取 * ServletInputStream:从HTTP请求读取数据 ...

  3. [UE4]非常实用的插值Lerp

    Alpha的数值范围是0到1. if(Alpha==0) ReturnValue=A if(Alpha==1) ReturnValue=B 如果Alpha在0到1之间,Alpha值越接近0则ReVal ...

  4. Android毛玻璃模糊化效果处理

    三种方法 第一种:比较简单,性能比较低 /**     * 通过调用系统高斯模糊api的方法模糊     *     * @param bitmap  source bitmap     * @par ...

  5. es5中类与继承

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  6. Oracle安装完成后如何创建表空间及用户

    1.select file_Name from dba_data_files;(查询表空间) 2.create tablespace QUAN datafile '/app/ADMINISTRATOR ...

  7. Java开发各层对象专用名词含义 PO,VO,DAO,BO,DTO,POJO, BYO,Entity,JavaBean,JavaBeans

    Java的几种名词(PO,VO,DAO,BO,POJO)解释 PO:persistant object 持久对象.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一 ...

  8. java eclipse maven The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方法

    在eclipse 中使用maven 创建java web项目,启动服务器遇到提示:The superclass "javax.servlet.http.HttpServlet" w ...

  9. (转)C#动态webservice调用接口

    原文地址:http://www.cnblogs.com/zouhao/p/6236785.html   ,此处仅测试了使用Http post请求调用webservice 调用类: using Syst ...

  10. Spark Streaming实时数据分析

    [kfk@bigdata-pro01 softwares]$ sudo rpm -ivh nc-.el6.x86_64.rpm Preparing... ####################### ...