申请证书
https://yq.aliyun.com/articles/713724?spm=a2c4e.11155435.0.0.5a9f33121vK849
将SSL证书由 .pem 格式转换成 Tomcat 所支持的 .jks 格式
1、 首先将pem文件(包括证书和私钥)转换成pk12格式文件:
$ openssl pkcs12(证书类型) -export -in cert.pem(pem证书文件) -inkey key.pem(pem私钥文件) -out out.pk12(导出的pk12文件) -name out(证书及私钥的友好名字)
# 注意这里需要设置密码
$ openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out lsl_letsencrypt.p12 -name tomcat_letsencrypt
Enter Export Password:
Verifying - Enter Export Password:
经过上面的操作,/etc/letsencrypt/live/你的域名/ 目录下就生成了一个新的证书 lsl_letsencrypt.p12。
2、生成keystore(再将证书由.p12格式转换成.jks格式)
$ keytool -importkeystore -deststorepass 目标存储库口令 -destkeypass 目标密钥库口令 -destkeystore out.keystore(目标密钥库) -srckeystore out.pk12(源密钥库) -srcstoretype PKCS12(源存储类型) -srcstorepass 源存储库口令 -alias 别名
keytool -importkeystore -srckeystore lsl_letsencrypt.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore lsl_letsencrypt.jks
经过上面的两步操作,/etc/letsencrypt/live/你的域名/ 目录下就生成了一个新的证书 lsl_letsencrypt.jks
修改 cas 证书
把 lsl_letsencrypt.jks 拷贝到 cas-overlay-templatesrcmainresources 下
开启ssl
修改 cas-overlay-templatesrcmainresources 下的 apliction.properties 文件
server.ssl.enabled=true
server.ssl.key-store=classpath:lsl_letsencrypt.jks
# server.ssl.key-store=file:/etc/cas/thekeystore
server.ssl.key-store-password=123*456
server.ssl.key-password=123*456
参考博文 https://blog.csdn.net/qq_35748567/article/details/93297990
启动 cas 服务
进入 cas-overlay-template 目录,执行
build.cmd run
或者
build.cmd bootrun
Nginx 反向代理 cas
upstream cas_server {
server 127.0.0.1:8443;
}
server {
# https://cas.sso.com/
listen 443 ;
server_name cas.sso.com;
ssl on;
ssl_certificate D:\\ProgramFiles\\nginx-1.14.2\\cert\\cas.sso.com\\fullchain.pem;
ssl_certificate_key D:\\ProgramFiles\\nginx-1.14.2\\cert\\cas.sso.com\\privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
#root html;
#index index.html index.htm;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
# note, there is not SSL here! plain HTTP is used
proxy_pass https://cas_server;
}
}