1.單點登錄服務器CAS應用配置於tomcat下。
1)key生成:
keytool -genkey -alias mycas -keyalg RSA -keysize 2048 -keystore /mnt/disk1/keys/mycas.keystore
keytool -export -file /mnt/disk1/keys/mycas.crt -alias mycas -keystore /mnt/disk1/keys/mycas.keystore
2)CAS發布tomcat中server.xml中配置
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/mnt/disk1/keys/mycas.keystore" keystorePass="123456" />
3)如果不使用集群,通過java端通過CAS client直接連接此CAS服務器,則需要在jdk中導入相應的證書文件:
keytool -delete -alias mycas -keystore /usr/local/jdk/jre/lib/security/cacerts //刪除證書
keytool -import -keystore /usr/local/jdk/jre/lib/security/cacerts -file /mnt/disk1/keys/mycas.crt -alias myca //導入證書
2.nginx負載多個tomcat
1)nginx ssl證書生成
cd /mnt/disk1/nginxkeys 進入證書存儲文件夾
openssl genrsa -des3 -out server.key 1024 創建服務器私鑰
openssl req -new -key server.key -out server.csr 創建證書簽名請求(CSR)
[
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:BJ
Locality Name (eg, city) [Newbury]:BJ
Organization Name (eg, company) [My Company Ltd]:test
Organizational Unit Name (eg, section) []:test
Common Name (eg, your name or your server's hostname) []:cas112.test.com(在使用casclient時候必須在這里填入域名,否則報錯)
Email Address []:l@test.com
]
cp server.key server.key.org 在加載SSL支持的Nginx並使用上述私鑰時除去必須的口令
openssl rsa -in server.key.org -out server.key 在加載SSL支持的Nginx並使用上述私鑰時除去必須的口令
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 使用上述私鑰導出CSR,CRT簽名證書:
2)nginx https接口配置
upstream cas_server_ssl { #ip_hash; server localhost:8443; } server { listen 443; server_name localhost; ssl on; ssl_certificate /mnt/disk1/nginx_keys/server.crt; ssl_certificate_key /mnt/disk1/nginx_keys/server.key; location / { root html; index index.html index.htm; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://cas_server_ssl; } }
3.客戶端配置
同跟不使用nginx集群配置類似,將server.crt導入客戶端jdk。
keytool -delete -alias nginx_cas_crt -keystore /usr/local/jdk/jre/lib/security/cacerts //刪除證書
keytool -import -keystore "$JAVA_HOME/jre/lib/security/cacerts" -file /mnt/disk1/nginx_keys/server.crt -alias nginx_cas_crt //導入證書