tomcat 配置 Let's Encrypt 多域名免费证书 centos 6.5

本贴最后更新于 2925 天前,其中的信息可能已经时移世改

本文出现的意图

由于公司最近因为IOS版本的升级,开始全面推广https,所有的IOS客户端都要使用ssl证书。公司买了阿里的证书一年要五千多, 感觉还是挺贵的。后来去了解原来还有免费证书这个东西,就想着去捣鼓一下,网上教程很多,标准不一,大致都差不多。由于 每个机器的环境都不一样,导致遇到的情况也是不太一样。对于不少人来说,问题还是挺多的。如果大伙不想自己去配置,可以 下载宝塔的面板来管理网站,它就有一键部署Let's Encrypt 的功能,我在腾讯云下使用宝塔没有出现问题,大家也可以用他来建站。

宝塔官网:点击跳转

配置 Let's Encrypt 免费证书的准备

1、 首先把你的域名解析到这台服务器,这里是多域名配置,那至少解析两个子域名过来啦,我这里解析的是 ssl.huiyanxian.cn , tssl.huiyanxian.cn 切记是A解析啊 2、 首先你要配置好你的java环境,包括jdk,tomcat的安装。我的端口改为了80,具体配置如下(可以不按照我的来配置) <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="生成证书的路径" keystorePass="证书的密码" clientAuth="false" sslProtocol="TLS" /> 3、 因为在安装过程中需要安装不少依赖,因为默认源在国外,导致依赖失败,所以需要先把源改为国内源,大家可以用网易163的源, 或者阿里的,我这里用的是阿里的源,具体更换方法参考我前面的另一片文章 https://blog.huiyanxian.cn/articles/2017/06/15/1497490831833.html 4、 这里是使用的是certbot-auto 来申请证书,python要升级到2.7,centos 6.5 默认的python版本是 2.6.6,升级python参考文章 (https://blog.fazero.me/2016/10/13/centos-update-python/),这里提供了一键脚本,以及把pip升级到了最新。

开始安装

1、 安装 certbot wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto 2、 申请ssl ,因为要验证你的域名是否解析到了你的服务器,会借用你的80/443端口。所以在执行下面语句之前保证80/443 是没有被占用的。我这里只需要关闭tomcat就行。 ./certbot-auto certonly --standalone --email xxxxxx@qq.com -d ssl.huiyanxian.cn -d tssl.huiyanxian.cn 这里是多域名的,想要在添加域名的话继续在后面添加 -d 域名 email后面填写的是你的邮箱 弹出的 两个选项 一个选择同意 A 另外一个选择 Y 就行。 等待到最后出现以下内容说明申请成功 IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/ssl.huiyanxian.cn/fullchain.pem. Your cert will expire on 2017-09-14. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le 说明申请成功,并且存放在了 这个文件下 /etc/letsencrypt/live/ssl.huiyanxian.cn/fullchain.pem 3、 合成tomcat的证书,在 tomcat 底下创建一个文件夹用来存放准备生产的证书(当然也可以自己选择一个目录存放) 我的目录是:/usr/local/tomcat/conf/LetsEncrypt , #进入申请证书的目录,这个目录会以第一个域名明明,不影响多域名使用。 cd /etc/letsencrypt/live/ssl.huiyanxian.cn/ #复制到tomcat刚创建的证书目录下 cp fullchain.pem /usr/local/tomcat/conf/LetsEncrypt cp privkey.pem /usr/local/tomcat/conf/LetsEncrypt #进入到这个目录 cd /usr/local/tomcat/conf/LetsEncrypt/ #生成.p12文件 openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat 这里会被要求设置密码,输入就行(下面用到的:yourPKCS12pass) #生成.jks证书 keytool -importkeystore -deststorepass 'yourJKSpass' -destkeypass 'yourKeyPass' -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 srcstoretype PKCS12 -srcstorepass 'yourPKCS12pass' -alias tomcat 其中 yourPKCS12pass 是上一步中设置的ssl证书密码,这里的yourKeyPass是要设置的keystore密码,可以与yourPKCS12pass一致,下面配置tomcat会用到 4、 配置tomcat <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="/usr/local/tomcat/conf/LetsEncrypt/MyDSKeyStore.jks" keystorePass="证书的密码" clientAuth="false" sslProtocol="TLS" /> 5、 完成,在tomcat创建两个站点,放入一个简单的.jsp文件,可以通过https://ssl.huiyanxian.cn https://tssl.huiyanxian.cn 即可访问。 免费证书只能用三个月,但是可以通过脚本自动更新,后续我会补充相关的自动更新的方法。

参考文献

1、certbot 官方

2、更新 python

3、配置生成证书

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 149 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 9 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 629 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 553 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 676 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 3 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • 印象笔记
    3 引用 • 16 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 93 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 59 回帖 • 4 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 395 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 99 回帖
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 242 回帖 • 2 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 119 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    115 引用 • 318 回帖
  • OneDrive
    2 引用 • 3 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖
  • 工具

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

    298 引用 • 763 回帖
  • SEO

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

    36 引用 • 200 回帖 • 32 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 3 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 4 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 504 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 175 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    291 引用 • 4495 回帖 • 661 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    167 引用 • 597 回帖
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 184 关注