页面上红框内提示:
Non-secure Connection
You are currently accessing CAS over a non-secure connection. Single Sign On WILL NOT WORK. In order to have single sign on work, you MUST log in over HTTPS.
原因在于访问路径不是https访问,解决方案如下:
第一种解决方案:cas服务端搭建https证书认证体系
一、修改hosts文件
用Notepad++打开C:\Windows\System32\drivers\etc下的hosts,写入127.0.0.1 casserver,如下图:
点击保存,会弹出下框:
点击“是”,后:
再次保存即可完成host修改
二、利用用jdk自带工具keytool生成受信任的证书
打开cmd,输入:keytool -genkey -alias cas -keyalg RSA -keystore d:\cas.keystore后,回车,按提示进行操作
完成后会在D盘出现文件“cas.keystore”,若没有显示出来,刷新一下D盘。
三、tomcat加入受信证书
1.将刚生成的文件“cas.keystore”剪贴或拷贝到tomcat根路径
2.编辑tomcat下的conf里的server.xml文件
找到8443端口位置,如下:
在该位置下增加代码,内容为:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystorePass="changeit" keystoreFile="cas.keystore" />
修改后如下:
四、浏览器访问:https://casserver:8443/cas/login,见:
另一种解决方案:cas服务端原配置文件修改,去掉https验证
我们在官网(https://apereo.github.io/cas/4.2.x/installation/Configuring-SSO-Session-Cookie.html)上可以看到有关于https的安全认证的属性。
一、修改cas.properties文件
文件在D:\casoverlay\cas-4.2.7\cas-server-webapp\src\main\webapp\WEB-INF下,修改如下位置:
# Decides whether SSO cookie should be created only under secure connections
# tgc.secure=true
...省略...
# Decides whether SSO Warning cookie should be created only under secure connections
# warn.cookie.secure=true
决定是否需要在安全连接(https)的情况下才能创建tgc和warn.cookie。
我们这里只要把tgc.secure和warn.cookie.secure这两个属性修改成false即可。
修改后如下:
二、修改cas.properties文件
文件在D:\casoverlay\cas-4.2.7\cas-server-webapp\src\main\resources\services下,修改如下位置:
增加“http”
修改后如下:
注意:此通过修改配置的方式去除https不适用于cas-4.2以下版本!!!
三、去掉登录页面上的提示
我们去掉https验证之后 保证了我们在cas server和cas client 使用http访问也能进行正常交互,但是原生的cas server页面上的提示是不会根据设置自动消失的。只能我们手动去除。
打开D:\casoverlay\cas-4.2.7\cas-server-webapp\src\main\webapp\WEB-INF\view\jsp\default\ui下的casLoginView.jsp文件,删除掉红框内代码,保存,即可。
四、cas-4.2.7重新打war包,部署,运行。
cas-4.2.7重新打war包,部署,运行方法见“cas-4.2.7搭建单点登录服务端(1)”中有介绍:https://blog.csdn.net/Dai_Haijiao/article/details/87942234
浏览器访问:http://127.0.0.1:8080/cas/login,见: