cas-server证书配置流程
前言
CAS Server默认要求启用https。原本以为配置SSL证书是非常容易的事情,但因为各种细节导致的异常,整个配置过程花了我大半天的时间。
在这里记录下操作成功的脚本和步骤,避免以后再踩坑。
配置步骤
- 配置hosts
在开发环境下,使用localhost作为主机名访问CAS Server,在ticket校验阶段会报错。所以需要配置一个开发域名。
在文件 C:\Windows\System32\drivers\etc\hosts 文件中添加一行
127.0.0.1 sso.server.dev - 生成证书
打开cmd,执行以下脚本:
keytool -validity 3650 -genkey -v -alias tomcat -keyalg RSA -keystore D:/keys/tomcat.jks -dname "CN=sso.server.dev,OU=server,O=server,L=shenzhen,ST=guangdong,C=CN" -storepass 123456 -keypass 123456
如果不存在目录D:/keys,需要先创建该目录。
keytool是JDK的脚本命令,需要先配置环境变量:JAVA_HOME和Path,或者直接到JDK的bin目录执行该行命令。 - 导出crt证书
执行以下脚本:
keytool -export -alias tomcat -keystore D:/keys/tomcat.jks -storepass 123456 -rfc -file D:/keys/tomcat.crt
询问是否信任此证书时,输入“Y” - 客户端jre导入证书
执行以下脚本:
keytool -import -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -file D:\keys\tomcat.crt -alias tomcat -storepass changeit - 配置证书路径
-
使用内嵌tomcat启动war包时,在application-dev.properties中添加:
server.ssl.key-store=file:D:/keys/tomcat.jks
server.ssl.key-store-password=123456
server.ssl.key-password=123456 -
使用外置tomcat启动war包时,在server.xml中添加(Tomcat 8.5):
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="D:/keys/tomcat.jks" type="RSA" certificateKeystorePassword="123456" certificateKeyAlias="tomcat"/></SSLHostConfig>
</Connector>
-
欢迎转载,但请注明出处。
Stay Hungry, Stay Foolish.