一.报错: 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;

最新文章

  1. Sublime、Webstorm,还有CLI、Atom,这些开发工具的更新你清楚吗?
  2. css中clearfix清除浮动的用法及其原理示例介绍
  3. 【代码笔记】iOS-评分系统(小星星)
  4. PAT 1020. 月饼 (25)
  5. 二叉搜索树BinarySearchTree(C实现)
  6. 每日Scrum--No.5
  7. caffe的db_lmdb.hpp文件
  8. [hdu 3605]Escape
  9. (转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类
  10. ExtJS 添加图标icon
  11. 利用 runtime,解决多次点击相同 button,导致重复跳转的问题-b
  12. js-事件委托
  13. study notes: high performance linux server programming
  14. 鼠标右键怎么清除Catalyst Control Center
  15. Entity Framework6使用SQL Server Compact免安装部署
  16. Yii2 关于yii\db\Connection::open耗时很久的问题(1000ms左右)
  17. jquery提供的插件无法删除cookie的解决办法
  18. WKWebView使用
  19. 解决微信小程序wepy真机预览跟本地表现不一样,数据变化了视图没变化
  20. [dev]typeof, offsetof 和container_of

热门文章

  1. C语言 第四章 分支结构练习
  2. Cesium原理篇:6 Renderer模块(2: Texture)
  3. 几个步骤轻松搞定ASP.NET 依赖注入。
  4. Java进击C#——语法之知识点的改进
  5. Oracle Client安装与基本配置
  6. Nancy之基于Nancy.Hosting.Aspnet的小Demo
  7. ASP.NET MVC4 Forms 登录验证
  8. Java--volatile关键字的作用与用法
  9. python学习笔记11 ----网络编程
  10. 06-图1 列出连通集 (25分)(C语言邻接表实现)