tomcat添加ssl证书对https的支持

0 篇文章 0 订阅



下午技术总监告诉我:喂,我帮你把cas服务器添加了个ssl证书,现在登录不了了,你看看什么问题。

既然有了需求,那我们只能卖力的看问题了。

ps:可能是昨天加班太晚,今天整个人都是懵逼的


1.添加tomcat对https的支持
修改conf/server.xml

 <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<Connector port="443" protocol="HTTP/1.1"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                           keystoreFile="/usr/tomcat/ssl/server.jks" keystorePass="yourpass"
               clientAuth="false" sslProtocol="TLS" />

配置说明:keystoreFile  秘钥仓库地址    keystorePass 密码   clientAuth 客户端是否需要证书认证 


2.由于cas客户端向服务端请求认证ST票据 通过httpClient  这样就存在问题  一直出现错误
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904)
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279)

证书认证不通过
查找原因  是在httpClient请求https jre需要包含服务端证书信息

3.导入服务端证书到jre中
首先导出证书  :从jks中导出证书  
查看jks中证书内容   keytool -list -v -keystore  server.jks
 
类似于 
Keystore type: JKS
Keystore provider: SUN


Your keystore contains 1 entry


Alias name: 1

发现包含一个证书  Alias name 为1
导出该证书  命令为:  keytool -export -alias 1 -keystore server.jks -rfc -file server.cer     
* -rfc 表示以base64编码输出 否则以二进制

然后复制server.cer文件到客户端服务器  

  命令:keytool -import -keystore "/usr/java/jdk7/jre/lib/security/cacerts"  -storepass  changeit  -keypass  changeit  -alias 1  -file server.cer
-keystore 后面接jre秘钥仓库目录  -storepass jre秘钥仓库密码  默认 changeit   -keypass  一样默认changeit   -alias 上面查看到的Alias name    -file 导出的证书文件.cer

同理 服务端单点登出请求的时候  一样需要添加客户端证书

到此证书导入完成   问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值