javax.net.ssl.SSLHandshakeException(Cas导入证书)
一.报错: javax.net.ssl.SSLHandshakeException
二.原因分析:
CAS部署时,常常要涉及到HTTPS的证书发布问题。由于在实验环境中,CAS和应用服务常常是共用一台PC机,它们跑在相同的JRE环境和Tomcat服务器上,因此忽略了证书的实际用途,一旦将CAS和应用分别部署在不同的机器上时,就晕了!
这里假设如下实验环境来说明相应的部署
机器A: 部署CAS服务
机器B: 部署OA应用
机器C: 用户浏览器端
1.由机器A上生成.keystore的证书文件,证书颁发者是机器A的完全域名
2.机器A上用于部署CAS的Tomcat的server.xml文件中定义HTTPS的配置,指向.keystore文件证书
3.从.keystore中导出的凭证文件要copy到机器B上,并导入机器B的JRE环境的证书库中
4.机器B上部署OA的Tomcat必须指定运行在导入凭证JRE环境上,而不是JDK,这点常有人搞错。
三.导入证书步骤:
1.找到JRE
1)机器B的OA应用直接部署在Tomcat
>>>独立的JRE
如果你在安装JDK时,选择了同时安装JRE,那么系统是跑在独立的JRE上。
为什么?因为在安装独立JRE的时候程序自动帮你把jre的java.exe添加到了系统变量中,验证的方法很简单,大家看到了系统环境变量的 path最前面有“%SystemRoot%system32;%SystemRoot%;”这样的配置,那么再去Windows/system32下面去看看吧,发现了什么?有一个java.exe。
>>>JDK里的JRE
如果没有同时安装独立JRE,那么系统跑在JDK自带的JRE上。
2)机器B的OA应用在MyEclipse中开发测试中
MyEclipse-右键project-Java Build Path-Libraries-双击JRE-一般是Workspace default JRE;
MyEclipse-windows-Preferences-Java-Installed JREs-右边有Myeclipse默认自带的JDK,双击即可查到JRE home;
2.到机器A拷贝证书xxx.cer文件到机器B
3.导入命令
cmd进入命令行窗口;
cd进入JRE目录\lib\security;
keytool -import -alias cacerts -keystore JRE目录\lib\security\cacerts -file 证书目录\xxx.cer -trustcacerts;
提示输入密码:changeit;
确定:y
4.如果keytool用不了,查看下path,classpath是否配置正确。
<以上为借鉴>
证书的导入:
1.查看证书:keytool -list -keystore /xxx/cacerts -storepass changeit
2.删除同名证书:keytool -delete -alias 证书名称 -keystore /xxx/cacerts -keypass changeit
3.导入证书:keytool -import -alias 证书名称 -file /xxx/server.cer -keystore /xxx/cacerts -storepass changeit 或者
keytool -import -v -rfc -trustcacerts -alias 证书名称 -file /xxx/server.cer -keystore /xxx/cacerts -storepass changeit -keystore cacerts所在完整路径 -storetype JKS;
4.如果keytool不可用(提示不是内部命令);cd /xxx/jdk1.xxx/bin
或者直接在classpath里面配置%JAVA_HOME%\lib\tools.jar;
javax.net.ssl.SSLHandshakeException(Cas导入证书)的更多相关文章
- 【转】javax.net.ssl.SSLHandshakeException(Cas导入证书)
本文转自:http://my.oschina.net/laiwanshan/blog/159057 一.报错: javax.net.ssl.SSLHandshakeException 二.原因分析:C ...
- 解决Java调用Azure SDK证书错误javax.net.ssl.SSLHandshakeException
Azure作为微软的公有云平台,提供了非常丰富的SDK和API让开发人员可以非常方便的调用的各项服务,目前除了自家的.NET, Java, Python, nodeJS, Ruby,PHP等语言都提供 ...
- 解决 Java 调用 Azure SDK 证书错误 javax.net.ssl.SSLHandshakeException
Azure 作为微软的公有云平台,提供了非常丰富的 SDK 和 API 让开发人员可以非常方便的调用的各项服务,目前除了自家的 .NET.Java.Python. nodeJS.Ruby,PHP 等语 ...
- 解决访问HTTPS,抛出的异常javax.net.ssl.SSLHandshakeException
本地测试没问题,http换成https抛出异常javax.net.ssl.SSLHandshakeException,网上有说是服务器证书,有说要启动SSL3协议的,反正没有找到有用的. 在GET和P ...
- javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed
1.使用HttpClient4.3 调用https出现如下错误: javax.net.ssl.SSLHandshakeException: sun.security.validator.Validat ...
- jdk1.7访问https报javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure问题解决
本地jdk版本java version "1.8.0_31",代码中已对https做了相应处理:信任所有来源证书,运行正常:上包到服务器(服务器jdk版本java version ...
- javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certificatio
场景:Java调用PHP接口,代码部署在服务器上后,调用报错,显示PHP服务器那边证书我这边服务器不信任(我猜的). 异常信息: 2019-08-06 14:00:09,102 [http-nio-4 ...
- 异常信息:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed
上周五遇到一个问题,工程本地编译运行正常,打包本地tomcat运行也正常.部署到测试环境报错: 2017-05-05 09:38:11.645 ERROR [HttpPoolClientsUtil.j ...
- javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
2019独角兽企业重金招聘Python工程师标准>>> 问题 前两天一个学弟在群里面问一个问题: 请问一下用阿里云服务器发送https请求为什么会失败,是需要有些其他什么配置吗? 同 ...
随机推荐
- 【NET MVC】View
通过阅读一些书籍,结合源代码,稍微深入的学习了Asp.Net MVC中的视图View 任何类型的响应都可以利用当前HttpResponse来响应,MVC可以通过Controller的Response属 ...
- HTTP在.NET中的一些应用和解析
谈到HTTP协议(超文本传输协议),HTTP协议是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在 ...
- 一致性hash算法简介
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简单哈希 ...
- web性能优化:详说浏览器缓存
TOC 背景 浏览器的总流程图 一步一步说缓存 朴素的静态服务器 设置缓存超时时间 html5 Application Cache Last-Modified/If-Modified-Since Et ...
- Visual Studio 2013 Update 3 RTM 正式发布
VS2013.3 RTM已发布! 完整安装包:http://download.microsoft.com/download/6/F/0/6F0777D3-3541-465F-8639-A8F9D36B ...
- 背水一战 Windows 10 (15) - 动画: 缓动动画
[源码下载] 背水一战 Windows 10 (15) - 动画: 缓动动画 作者:webabcd 介绍背水一战 Windows 10 之 动画 缓动动画 - easing 示例演示缓动(easing ...
- EF配置模型
配置方法 EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有 ...
- java程序员保持天天快乐的6个习惯
忍不住感叹,我第一次对Buffer(在社交媒体上发布最简单的方式)有所想法已经差不多是两年前的事了.并且,在我有想法的一年半前,我还在前面那家新创公司工作的时...... 忍不住感叹,我第一次对Buf ...
- Hadoop多节点集群安装配置
目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...
- Zookeeper Api(java)入门与应用(转)
如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储 ...