Yale cas服务器端客户端环境配置以及其在tomcat服务器下SSL安全协议得部署之完全实现篇

    技术2022-05-11  71

    有关CAS服务器配置以及作为cas服务器客户端程序的配置方法介绍

      由于CAS要求使用https和客户端进行通信,所以需要配置Tomcat支持SSL,为了实现SSL,一个Web服务必须对每一个接受安全连接的外部接口或者IP地址有一个相关联的证书,数字证书的获取一般从像verisign或者Thawte这样的著名证书颁发机构(Certificate Authority CA)购买证书,或者如果身份验证并不很重要,比如管理员只是希望保证服务器发送和接收的数据是私有的并且不能被连接中的任何窃听者探听到,则可以只是使用自签名的证书,从而省去获取CA证书的时间和成本。此处使用自签名证书作为客户端与服务器端安全通信的凭证。

    本节描述创建一个名为server.keystore的服务器keystore以及名为client.keystore的客户端keystore。这两个文件构成一个密钥对。这些文件通常是在<TOMCAT_HOME>目录中或者在应用程序目录中创建的。

    我们使用keytool工具创建keystore文件。可以在<JAVA_HOME>/bin目录中找到keytool工具。

    1.     生成密钥对

    keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore

    2  将服务器证书导出为证书文件:

    keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore  输入密码(changeit):

    Keytool返回下列消息:

    Certificate stored in file <server.cer>

     

    3 用keytool在所选的keystore文件中创建客户端证书:

    keytool -genkey -alias tomcat-client -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore

    4 将新客户端证书从keystore导出到证书文件:

    keytool -export -alias tomcat-client -storepass changeit -file client.cer -keystore client.keystore

    输入keystore密码(changeit)。Keytool将返回该消息:

    Certificate stored in file <client.cer>

    5 将上述步骤所得到的tomcat根目录下server.cer以及client.cer证书文件导入到cacerts 文件中,cacerts文件默认生成在tomcat根目录下

    keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit

    keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit

    6在tomcat根目录下找到cacerts文件,拷贝到<JAVA_HOME>/jre/lib/security文件下

    从下载得cas-server3最新版本中找到target文件下面得cas.war,拷贝到<TOMCAT_HOME>/webapp目录下,修改<TOMCAT_HOME>/conf下面得server.xml文件,添加如下:

    <Connector port="8443" maxHttpHeaderSize="8192"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"               enableLookups="false" disableUploadTimeout="true"               acceptCount="100" scheme="https" secure="true"               clientAuth="false" sslProtocol="TLS" keystoreFile="/server.keystore" keystorePass="changeit"/>       7  CAS默认设置为只要用户名和密码相同,即可进行登录,这在现实使用中是不允许的。我们修改为使用MySQL的test数据库中的app_user表作为用户数据源。首先,我们在test库中创建一个表:CREATE TABLE `app_user` (  `username` varchar(30) NOT NULL default '',  `password` varchar(45) NOT NULL default '',  PRIMARY KEY  (`username`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;并添加如下用户:INSERT INTO `app_user` (`username`,`password`) VALUES  ('dianne','emu'), ('marissa','koala'), ('peter','opal'), ('scott','wombat');用编辑器打开

    转载请注明原文地址: https://ibbs.8miu.com/read-25932.html

    最新回复(0)