如何配置在 nginx 和 cas 上配置 ssl?

本贴最后更新于 4562 天前,其中的信息可能已经物是人非

公司准备对登录服务采用 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.xmlwarnCookieGenerator.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

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    316 引用 • 547 回帖 • 4 关注
  • CAS
    13 引用 • 21 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 414 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 59 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1447 引用 • 10086 回帖 • 492 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 575 关注
  • OpenCV
    15 引用 • 36 回帖 • 5 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 19 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 440 关注
  • Excel
    32 引用 • 29 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    348 引用 • 763 回帖 • 1 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 847 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    305 引用 • 772 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1432 回帖
  • danl
    198 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 81 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    2 引用 • 34 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 40 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    4 引用 • 16 回帖 • 202 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    85 引用 • 414 回帖 • 1 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    78 引用 • 37 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    327 引用 • 1395 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    498 引用 • 934 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖 • 2 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    36 引用 • 200 回帖 • 51 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    594 引用 • 3541 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    25 引用 • 373 回帖
  • 博客

    记录并分享人生的经历。

    273 引用 • 2389 回帖