公司准备对登录服务采用 https,而登录服务采用的是 cas,前段的是用 nginx 代理, 所以就有了之后的几个问题。 ### 主要碰到了下面 3 个问题: > 1. nginx 中配置 ssl > 2. cas 中开启 ssl > 3. java 中导入证书 其实我主要卡在了第三点上,这个问题会在之后有详细的说明。 -------------------------------------------- 首先是生成我们的证书,我使用的是 openssl: 1. 首先是生成私钥: openssl genrsa -out server.key
2. 接下来要生成 CSR 文件: openssl req -new -key server.key -out server.csr
3. 最后就是生成证书文件: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
这里有我一个笔记是 openssl 的简单教程:openssl 简单教程 ------------------------------------------- 生成证书后,就可以配置 nginx 了,打开 nginx.conf,加入以下几行: listen 443 ssl; ssl on; ssl_certificate login.cert; ssl_certificate_key login.key; 加入这几行配置后,重载 nginx, nginx 上 ssl 就可以生效了,这时用普通的 http 访问会无法访问, 必须使用 https 访问,第一次访问 firefox 会提示证书不信任。 ------------------------------------------------ 接下来是在 cas 中开启 ssl 的支持,虽然这一步很简单,但是具体我也不甚了解,因为 cas 是其他同事负责的, 我只是按照他说的去做,所以我说的文件路径或者文件名和 cas 的原生项目会有不通。接下来我简单说以下如何配置: 先找到 WEB-INFO/spring-configuration
下的配置文件, ticketGrantingTicketCookieGenerator.xml
和 warnCookieGenerator.xml
打开文件 ticketGrantingTicketCookieGenerator.xml
Defines the cookie that stores the TicketGrantingTicket. You most likely should never modify these (especially the "secure" property). You can change the name if you want to make it harder for people to guess. 修改 p:cookieSecure="false"
的值为 true 打开 warnCookieGenerator.xml
: This Spring Configuration file describes the cookie used to store the WARN parameter so that a user is warned whenever the CAS service is used. You would modify this if you wanted to change the cookie path or the name. 修改 p:cookieSecure="false"
的值为 true。 修改这两个之后就可以把 cas 的包放入 tomcat 中启动 tomcat。 经过上面两部其实按正常情况下已经可以访问了,但是在登录的时候, 进入 cas 的登录页面进行登录,登录成功后返回的时候会抛出异常,对于这个异常我不甚理解, 但是我在 google 上所有得到的结果是这时 java 的一个 bug,不过已经给出了解决方法. 下载下面的代码: InstallCert.java 编译之后使用使用下面命令执行以下:java InstallCert cas.xxxxx.com
https://login.xxxx.com
是你配置了 ssl 的服务的那个域名 执行完后会在当前目录下生成 jssecacerts
的文件,把文件 copy 到 jdk1.7.0_10\jre\lib\security
目录下 重新启动服务即可。或者在 java 的启动参数中加入 -Djavax.net.ssl.trustStore=F:/work/Java/jssecacerts
, 重新启动也是可行的,我使用的后面这个方法,前面的那个我没有测试,不过应该不会有问题。 到这里就算是把 ssl 配置完成了,其实并没有什么复杂的东西,就是最后 java 这个问题让我找了很常时间。 最后在 java 的社区中找到解决办法,可以这个类的源码文件的下载链接还失效了,在 google 中找了半天才找到个完整的。
-
NGINX
313 引用 • 547 回帖
NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。
-
CAS
13 引用 • 21 回帖
-
SSL
70 引用 • 193 回帖 • 418 关注
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于