参考博客:
CAS单点登录-https配置
JAVA SSL HTTPS 连接详解 生成证书
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输;https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
一、生成证书
打开dos命令行窗口,执行以下命令生成server.keystore文件
1)生成别名为sso.server.com的证书
keytool -genkey -alias sso.server.com -keyalg RSA -keystore ./server.keystore
密码统一设置成123456
2)查看证书
keytool -v -list -keystore server.keystore
3)将证书导出到证书文件
keytool -exportcert -keystore server.keystore -file server.cer -alias sso.server.com
4)通过证书文件查看证书信息
Keytool -printcert -file server.cer
5)把证书文件导入到指定的密钥库
keytool -importcert -file server.cer -alias sso.server.com -keystore jdk1.8.0_121/jre/lib/security/cacerts
默认密码是changeit
二、修改tomcat的server.xml文件
<!--<Connector connectionTimeout="20000"
port="8443" minProcessors="5" maxProcessors="75" protocol="HTTP/1.1">
</Connector>-->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="E:/server.keystore" certificateKeystorePassword="123456"
certificateKeyPassword="123456"/>
</SSLHostConfig>
</Connector>
三、修改hosts文件
位置:C:\Windows\System32\drivers\etc\hosts
添加:127.0.0.1 sso.server.com
说明:此处的域名是上面生成证书的别名
四、修改环境变量:JAVA_HOME
改成jre
五、启动tomcat
访问url:https://127.0.0.1:8443/cas/
账号:密码 casuser:Mellon
登录成功
六、总结
在配置CAS-SERVER的https时踩了很多坑,以上配置缺一不可,如有遗漏,欢迎指正。