tomcat添加ssl证书对https的支持

原创 2016年08月30日 16:36:43



下午技术总监告诉我:喂,我帮你把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

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

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

相关文章推荐

Tomcat SSL配置及Tomcat CA证书安装

最近要做一个SSL的应用,用SSL进行双向身份验证意思就是在客户机连接服务器时,链接双方都要对彼此的数字证书进行验证,保证这是经过授权的才能够连接。我们链接一般的SSL时采用的是单向验证,客户机只验证...
  • cuker919
  • cuker919
  • 2012年05月24日 21:26
  • 41047

利用jdk自带keytool生成ssl证书,搭建tomcat+https协议

一、 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常...

全面讲解Tomcat下SSL证书的配置(四)

使用openssl管理证书在上文中我们提到了openssl与keytool工具关于证书转换方面的衔接。下面将逐一讲述如何使用openssl 从pkcs12文件中提取文本格式证书、私钥、制作证书链证书文...

Tomcat 配置 SSL 证书,通过ATS验证

2017 年起 app store 要求 app 对接的服务器支持 TLS v1.2,否则 ats 检测不予通过。有点强制推 TLS v1.2 的意味。本文介绍如何使 tomcat 强制执行 TLS ...
  • dengcun
  • dengcun
  • 2017年01月19日 16:03
  • 549

Tomcat 配置SSL,以及Tomcat CA证书制作和安装

转自 http://blog.csdn.net/u012256142/article/details/21094043 SSL的应用,用SSL进行双向身份验证意思就是在客户机连接服务器时,链...

全面讲解Tomcat下SSL证书的配置(五)

Tomcat下具体的配置Tomcat下关于使用SSL证书的配置可以分为三部分 1.启用SSL,使用Tomcat Java平台自身的SSL功能; 2.启用SSL,通过apr协议调用openssl的S...

TOMCAT导入通过第三方证书机构获取的证书

通常,在创建HTTPS的服务器的时候都需要一个网站的SSL证书文件,但是在网上找到的文档基本上都是在介绍怎么自己用keytools创建一个证书,但是这种方法申请的证书根本不会被广大网民的浏览器认证,所...
  • zhzzha
  • zhzzha
  • 2015年12月28日 17:49
  • 5005

Tomcat8.5 / 9 安装ssl证书

Tomcat 8.5 以上版本支持 SNI ( 同IP可以安装多个证书 ), 至少 jre 7 以上版本
  • zsg88
  • zsg88
  • 2017年02月05日 22:03
  • 1978

tomcat6.0与7.0 配置https协议

https介绍:    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTT...

Tomcat配置SSL证书遇到的各种问题

今天决定把之前配置SSL证书遇到的各种问题记录下来 一,前往阿里云下载免费版SSL证书(具体可以百度) 二,参照下载时SSL证书配置进行配置(阿里云提供有Tomcat配置的视频) 视频连接:ht...
  • Bronna
  • Bronna
  • 2017年07月18日 12:11
  • 616
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tomcat添加ssl证书对https的支持
举报原因:
原因补充:

(最多只允许输入30个字)