zoukankan      html  css  js  c++  java
  • 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目录libsecurity;
    keytool -import -alias cacerts -keystore JRE目录libsecuritycacerts -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 ools.jar;

  • 相关阅读:
    day74 作业
    day73 基表 表关联
    不知道第几次分享了
    day72 序列化家族
    day72 作业
    vscode
    vuex
    linux python3.7的安装和配置
    使用多线程分批发送短信代码,分割list
    docker 容器里使用crontab不生效
  • 原文地址:https://www.cnblogs.com/zhaoyhBlog/p/6184304.html
Copyright © 2011-2022 走看看