java中 SSL认证和keystore使用】的更多相关文章

java中 SSL认证和keystore使用 2013-10-12 11:08 10488人阅读 评论(0) 收藏 举报   目录(?)[+]     好久没用过SSL认证了,东西久不用,就有点生疏.博客就是有这个好处,可以做备忘录. java中是通过SSL认证,使用的是SSLSocket,通过SSLSocketFactory可以获得SSLSocket实例对象.通常SSLSocketFactory需要一个SSLContext环境对象来构建, 构建一个SSLContext 环境: SSLConte…
JAVA中SSL证书认证通讯 SSL通讯服务端 /******************************************************************** * 项目名称    :rochoc   <p> * 包名称      :rochoc.net.security <p> * 文件名称    :SSLServer   <p> * 编写者     :luoc    <p> * 编写日期    :2005-6-30    <…
  情形一:接口的加.解密与加.验签 rsa不是只有加密解密,除此外还有加签和验签.之前一直误以为加密就是加签,解密就是验签.这是错误的! 正确的理解是: 数据传输的机密性:公钥加密私钥解密是密送,保证消息即使公开也只有私钥持有者能读懂,指的是加密与解密. 身份验证机制:私钥加密公钥解密是签名,保证消息来源是私钥持有者,指的是加签和验签.即数字签名 所以加/解密和加/验签这是两种不同的概念.       即:公加私解,私签公验 注:其实在RSA中公钥和私钥都可以加密或解密,即:1.公加私解,2.…
HTTPS 中双向认证SSL 协议的具体过程: 这里总结为详细的步骤: ① 浏览器发送一个连接请求给安全服务器.② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器.③ 客户浏览器检查服务器送过来的证书是否是由自己信赖的 CA 中心所签发的.如果是,就继续执行协议:如果不是,客户浏览器就给客户一个警告消息:警告客户这个证书不是可以信赖的,询问客户是否需要继续.④ 接着客户浏览器比较证书里的消息,例如域名和公钥,与服务器刚刚发送的相关消息是否一致,如果是一致的,客户浏览器认可这个服务器的合…
java实现ssl单/双向认证通信[推荐] 学习了:https://blog.csdn.net/zbuger/article/details/51695582 学习了:https://www.cnblogs.com/franson-2016/p/5550536.html…
大概思路: 使用openssl生产CA证书,使用keytool生产密钥库 实验环境:RHEL6.4+Tomcat8 一.生成CA根证书,并自签名 1.生成CA密钥 # genrsa [产生密钥命令] -des3 [加密算法] -out[密钥文件输出路径] 512 [密钥位数] openssl genrsa -des3 -out root.key 512 #可通过下面语句清除密码 openssl rsa -in root.key -out root.key 2.生成CA证书请求文件 # req[产…
JAVA中发送邮件的方法不复杂,使用sun的JavaMail的架包就可以实现.  一.下载JavaMail的架包,并导入项目中,如下: 二.附上代码例子,如下: 1.在main函数中对各项参数进行赋值(参数说明已进行备注),即可通过send函数进行发送邮件操作. public class TestEmail { private final static String TIMEOUT_MS = "20000"; public static void main(String[] args)…
参考链接:https://www.cnblogs.com/benwu/articles/4891758.html keytool -genkey -alias mybroker -keyalg RSA -keyStore mybroker.kskeytool -export -alias mybroker -keyStore mybroker.ks -file mybroker.certkeytool -import -alias mybroker -keystore mybroker.ts -…
对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区别呢.本文就来简要分析一下. 代理技术,其实不只是Java语言特有的技术,其实在互联网早期就已经出现了这种技术. 在计算机网络层面,常用的代理技术有:正向代理.反向代理和透明代理.最常用到的就是正向代理和反向代理. 正向代理和反向代理 正向代理 正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标…
本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 0.Nginx配置Https双向认证 首先配置Https双向认证的服务器资源. 可以参考:http://www.cnblogs.com/dreamingodd/p/7357029.html 完成之后如下效果: 1.导入cacerts进行访问 首先将服务器证书导入keystore cacerts,默认密码为changeit,如果需要修改密码就改一下. keytool -impor…
如何把安全证书导入到java中的cacerts证书库   提示: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to request…
Java 中类似 <T extends Comparable<? super T>> 这样的类型参数 (Type Parameter) 在 JDK 中或工具类方法中经常能看到.比如 java.util.Collections 类中的这个方法声明: public static <T extends Comparable<? super T>> void sort(List<T> list) 我知道 extends 和 super 这样的关键字在泛型…
一.web及网络基础       1.HTTP的历史            1.1.HTTP的概念:                 HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.                 它是一个应用层协议,承载于TCP之上.由请求和响应构成,是一个标准的客户端服务器模型            1.2.HTTP的发展历史:          …
参考谷歌翻译,关键字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url-rewriting Java Web应用程序中的会话管理(Session Management)是一个非常有趣的话题.Java Servlet中的会话通过不同的方式进行管理,例如Cookie,HttpSession API,URL重写等. 这是Java Web应用程序系列教程中的第三篇文章,您可能…
1.加密概述: 加密就是是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使以获得了加密的信息,但因不知解密方式,仍无法了解信息的内容.大体上又分为双向加密和单向加密. 2.单项加密 2.1.概述: 单向加密又称为不可逆加密算法,在加密过程中不使用密钥,明文由系统加密成密文,密文无法破解,一般都是采用验证的方式,具体是:在验证过程中,重新输入明文,并经过同样的加密算法后,得到相同的密文.单向加密广泛用于口令加密. 2.2.特点: (1)对同一消息反复执行加密得到相同的密文: (2)加密算法…
在java中,特别是java web中,我们经常需要碰到的一个场景是我们需要从服务端去发送http请求,获取到数据,而不是直接从浏览器输入请求网址获得相应.比如我们想访问微信接口,获取其返回信息. 在这里需要用到java的HttpURLConnection类,此类可以模拟http请求,获取到的响应以输入流的形式被程序所取到.现将相关方法整理为工具类. package com.m_gecko.util; import java.io.BufferedReader; import java.io.I…
目录 SSL 认证 认证实现 问题解决 curl不支持 https SSL certificate problem, verify that the CA cert is OK curl: (60) SSL certificate : unable to get local issuer certificate 参考链接 SSL 认证 可以将 SSL 服务器与客户端之间的通信配置为使用单向或双向 SSL 认证. 单向 SSL 认证一般是客户端利用服务器传过来的信息验证服务器的合法性,服务器的合法…
一.为MongoDB设置用户名和密码 MongoDB中验证用户和密码的条件: 1. 服务器启动的时候打开授权认证,即修改MongoDB的配置文件mongodb.conf,增auth = true # 设置数据目录的路径 dbpath = E:\programs\mongodb-\db # 设置日志信息的文件路径(需要写日志文件时,取消注释) # logpath = E:\programs\mongodb-\log\mongodb.log # 打开日志输出操作(需要写日志文件时,取消注释) # l…
JVM 内存分配模型概念 --在工作中可能用到的机会不多,有个概念的了解 --此文是转载某位读者,应该是在阅读了<深入理解Java虚拟机JVM高级特性与最佳实践> 一书后,总结所得.写的不错,转载哈 一.JVM内存区域划分   大多数 JVM 将内存区域划分为 Method Area(Non-Heap),Heap,Program Counter Register, Java Method Stack,Native Method Stack和Direct Memomry(注意 Directory…
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> <…
这次项目上需要去证书中解析公钥所以这里分享下方法: 首先准备一个证书文件比如叫:test.crt(一般是cer结尾) 下一步准备把证书导入到导入java中的cacerts证书库里 方法如下: 比如本地的jdk路径是C:\Program Files\Java\jdk1.8.0_181那么接下来我们要进入C:\Program Files\Java\jdk1.8.0_181\jre\lib\security 这时我是把证书放在当前文件夹的所以终端敲以下命令 可以先敲下keytool -list -ke…
        在公司代码中,用了一大堆的枚举,看得我好懵逼.下面开始看看枚举怎么写和怎么用. 一.枚举的写法         关于枚举的写法,网上好多这方面的知识.这里直接贴一个我自己写的枚举类的代码. (1)代码片段一 package com.tomtop.application.libraries.constentEnum; /** * 包材领用状态枚举类 * @author zeng.xiao.yan * @date Jun 5, 2017 1:04:40 PM * @version V…
原文地址:http://www.cnblogs.com/weiwangnuanyang/articles/4326336.html java中使用MD5进行加密     在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希望能抛砖引玉.(一)消息摘要简介    一个消息摘要就是一个数据块的数字指纹.即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二…
HTTP 1.1会在第一次连接的时候进行认证, 而在一定时间内保持连接而不用重新验证. 一般情形下,每个web service请求都会在web service服务端验证, 而验证会消耗很多时间, 因此改进或减少验证的次数, 并且使用HTTP 1.1来保持长时间连接能够极大的提高web service性能. JAVA中使用Axis 1.4时,默认使用HTTP 1.0来传输web service请求.因此需要配置其使用HTTP 1.1. 以下是配置Axis 1.4使用HTTP 1.1的方法: 1.…
mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二进制免编译安装包,地址如下MySQL5.6下载 和安装一台mysql实例一样,首先要创建mysql用户,创建datadir目录. [root@test2 mysql]# useradd -M mysql #创建dataidr目录,因为要安装4个MySQL数据库实例,需要创建4个datadir目录,如…
Java程序使用Redis 添加依赖包 Maven依赖方式 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 下载Jar包方式 下载地址: http://central.maven.org/maven2/redis/clients/…
记录 一.java中的数据加密 Java提供的安全模型和API 加密基础知识 使用JAVA实现加密 二.Java提供的安全模型和API 2.1.Java语言本身的安全性 自动内存管理:对于生成的对象在生命周期结束后会自动销毁 自动数组溢出检查等:如数组下标越界 字节代码的验证机制:转化为class字节码文件运行 独特的安全类加载:编译成class类后,加class类进行加载 2.2.Java加密体系 JCA和JCE两个重要框架 JCA:-JCA-java Cryptography Archite…
package com.huawei.filter; import java.io.IOException; import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.Servl…
通过浏览器输入https://www.xxx.com,request.getScheme()获取到的确实http而不是https通过request.getRequestURL()拿到的也是http://www.xxx.com分析原因,是因为用nginx+tomcat部署web服务,tomcat接受到的请求都是来自于nginx的http请求. request.getScheme() //总是 http,而不是实际的http或https request.isSecure() //总是false(因为…
java中使用MD5进行加密     在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希望能抛砖引玉.(一)消息摘要简介    一个消息摘要就是一个数据块的数字指纹.即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组).消息摘要是一种与消息认证码结合使用以确保消息完整性的技术.主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密…