CAS单点登录配置https

基础环境

CAS-5.3.9

Tomcat 9.0.37

jdk8

本地配置

配置hosts文件

hms.iems.cloud 是我们测试的域名
测试时需要把本地机的ip映射为hms.iems.cloud设到系统hosts文件
在目录C:\Windows\System32\drivers\etc下找到并修改hosts文件
CAS单点登录配置https_第1张图片
修改该文件需要管理员权限
CAS单点登录配置https_第2张图片

生成密钥

生成步骤,各参数含义:

-genkeypair 生成密钥
-keyalg 指定密钥算法,这时指定RSA,
-keysize 指定密钥长度,默认是1024位,这里指定2048,长一点,我让你破解不了(哈哈…),
-siglag 指定数字签名算法,这里指定为SHA1withRSA算法
-validity 指定证书有效期,这里指定36500天,也就是100年,我想我的应用用不到那么长时间
-alias 指定别名,这里是cas.server.com
-keystore 指定密钥库存储位置,这里存在d盘
-dname 指定用户信息,不用一个一个回答它的问题了;

keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36500 -alias hms.iems.cloud -keystore D:/ssl/tomcat.keystore -dname "CN=hms.iems.cloud,OU=ggny,O=ggny,L=QingDao,ST=QingDao,C=CN"

**注意:CN=域名,我们采用hms.iems.cloud **
输入上述命令,密钥库口令输入123456,然后回车,就在x盘生成了tomcat.keystore文件;
秘钥的密码就是:123456

生成证书

keytool -exportcert -alias hms.iems.cloud -keystore D:/ssl/tomcat.keystore  -file D:/ssl/tomcat.cer -rfc

然后发现ssl目录下多了一个tomcat.cer的文件,表示导出证书成功

参数说明

  • -alias指定别名为tomcat;
  • -storepass指定私钥为123456;
  • -file指定导出证书的文件名为tomcat.cer;
  • -keystore指定之前生成的密钥文件的文件名。
    注意:-alias和-storepass必须为生成tomcatekeystore密钥文件时所指定的别名和密码,否则证书导出失败

导入证书导入到jdk信任库

cd C:\Program Files\Java\jdk-11.0.2\lib\security

keytool -import -alias hms.iems.cloud -keystore cacerts -file D:/ssl/tomcat.cer -trustcacerts

输入密码为 changeit并同意导入

CAS单点登录配置https_第3张图片
检查是否导入成功,有东西输出代表成功

keytool -list -keystore "cacerts" | findstr/i server

项目设置

有了证书后,让项目能够识别证书,并且把ssl开关打开

  1. 把tomcat.keystore拷贝到sso-server\src\main\resources下
  2. 配置文件
##SSL配置
server.ssl.enabled=true
server.ssl.key-store=classpath:tomcat.keystore
server.ssl.key-store-password=123456
server.ssl.keyAlias=hms.iems.cloud

将证书导入到浏览器中

不同的浏览器会有略有差别。对于chrome浏览器来说,在地址栏输入chrome://settings/进入设置界面,再点击最下面的“显示高级设置”然后往下找到
在这里插入图片描述

点击“管理证书”,切换到如下图红框所示“受信任的根证书颁发机构” tab页
CAS单点登录配置https_第4张图片

测试

tomcat启动项目
访问 https://hms.iems.cloud:8443/cas/login 如下图所示

CAS单点登录配置https_第5张图片

服务端tomcat配置

除了在我们的项目中配置文件配置相关ssl配置,也可以直接在tomcat中进行配置

打开$CATALINA_HOME/conf/server.xml,增加

<Connector port="8443" protocol="HTTP/1.1"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="D:\ssl\tomcat.keystore" keystorePass="123456"
               clientAuth="false" sslProtocol="TLS" />

阿里云服务端tomcat9配置

首先去阿里云申请一个pfx证书,可以免费获得。

其次,在tomcat的server.xml增加如下connector

<Connector port="8443" protocol="HTTP/1.1"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="ssl/4166471_hms.iems.cloud.pfx" keystorePass="123456"
               clientAuth="false" sslProtocol="TLS" />

下边这种从网上看到的,不知道好不好用

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true"  scheme="https" secure="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/your.pfx" certificateKeystoreType="PKCS12" certificateKeystorePassword="password"
/>
</SSLHostConfig>
</Connector>

ssl配置

server.ssl.ciphers
是否支持SSL ciphers.

server.ssl.client-auth
设定client authentication是wanted 还是 needed.

server.ssl.enabled
是否开启ssl,默认: true

server.ssl.key-alias
设定key store中key的别名.

server.ssl.key-password
访问key store中key的密码.

server.ssl.key-store
设定持有SSL certificate的key store的路径,通常是一个.jks文件.

server.ssl.key-store-password
设定访问key store的密码.

server.ssl.key-store-provider
设定key store的提供者.

server.ssl.key-store-type
设定key store的类型.

server.ssl.protocol
使用的SSL协议,默认: TLS

server.ssl.trust-store
持有SSL certificates的Trust store.

server.ssl.trust-store-password
访问trust store的密码.

server.ssl.trust-store-provider
设定trust store的提供者.

server.ssl.trust-store-type
指定trust store的类型.

你可能感兴趣的:(https,java,https,ssl)