elasticsearch+Nginx+django+cas+mysql平台搭建实现单点登录认证
系统结构功能图:
系统简介:
1.django项目放到了nginx容器中,采用的是nginx+uwsgi的方案。django访问端口5050。
nginx listen 8000端口,访问8000端口会转到5050 端口
2.nginx反向代理elasticsearch,elasticsearch的访问端口为9200,采用nginx反向代理之后,当django中需要从elasticsearch中查询数据的时候只需要访问nginx的8081端口,为了保护elasticsearch的安全性在nginx中设置了访问规则。
3.cas服务器部署到tomcat中,cas的用户名密码存储在mysql数据库中。
对于用户而言只可以通过8000端口访问整个系统(投入使用之后只需要将8000改为80即可,其他地方都不用做更改)
详细内容请看下面在搭建系统过程中的介绍。
cas服务器搭建:
一、创建秘钥
1.新建存放key的目录mkdir -p/usr/local/keys
2.利用jdk自带的keytool生成秘钥库:
keytool -genkey -alias tomcat -keypasschangeit -keyalg RSA -keystore /usr/local/keys/server.keystore
注:tomcat为别名 server .keystore 为生成的秘钥文件 changeit 为密码,为了方便所有的密码都设置为changeit,在生成秘钥库的时候第一项写访问的域名例如www.jiuge.lol其余的随便写
3.导出证书:
keytool -export -alias tomcat -keypass changeit -file/usr/local/keys/server.crt -keystore/usr/local/keys/tomcat.keystore
导出的时候输入之前的密码:changeit
4.将数字证书导入jre中
在导入之前可以把已有的证书删除:
keytool -delete -alias tomcat(随便起的别名) -keystore
/usr/local/jdk1.8/jre/lib/security/cacerts -storepass changeit
然后在进行导入操作:
keytool -import -alias tomcat -file/usr/local/keys/server.crt -keypass changeit -keystore /usr/local/jdk1.8/jre/lib/security/cacerts
注:这里的jre地址一定要和tomcat使用的jre地址一致。
输入密码(注:这里的输入的密码不是上面设置的密码是固定的密码changeit,为了不弄混,在之前设置的密码和这个设置相同就可以了)
5.查看证书是否导入成功:
keytool -list -keystore /usr/local/jdk1.8/jre/lib/security/cacerts
输入changeit密码可以看到证书成功导入了
二、配置https
修改tomcat中的server.xml,添加如下内容
此时开启tomcat访问:
说明https配置生效:
三、搭建cas服务器以及客户端测试
1.部署cas
下载cas(网址:http://www.jasig.org/cas)
解压之后在models文件夹下面有一个cas-server-webapp-3.5.0.war,将其改名为cas.war 放到webapps目录下作为单点登录服务器:
此时访问
输入用户名密码(相同字符串就行)注:4.0版本以上cas的默认帐号密码为casuser/Mellon
出现此界面则说明cas服务器搭建成功
2、对cas客户端进行部署测试
下载cas-client-core-3.2.1.jar,commons-logging-1.1.jar并将其拷贝到测试目录examples中的lib下面