在tomcat中加入SSL证书,可以用https方式访问域名,增加域名的安全性。当然也有很多应用要求https访问,也是安全性的考虑。阿里云和腾讯云都提供SSL证书,还有一些其他的大公司也提供,我这里以腾讯云的SSL证书为例,说一下整个申请及设置的流程。

第一步,申请免费的SSL证书。

https://buy.cloud.tencent.com/ssl?fromSource=ssl

需要登录才能申请,没有登录的情况下点击免费快速申请,会跳转到登录页面,登录后,会出要求填写一些信息,通用名称是需要绑定的域名,申请邮箱就是自己的邮箱,证书备注名可以填写,为了方便查看,没有特别的用途。私钥密码需要牢记,后面还会用到,比如我们写abcdef,

点击下一步,会出现选择验证方式,可以手动DNS验证,也可以文件验证。

大家可以查看详细说明,DNS验证应该简单些,可以直接在腾讯云上操作,分为手动DNS验证和自动DNS验证。我采用的是文件验证,也就是把文件下载下来,放到tomcat中进行验证的方式。选择文件验证,然后确认申请。出现以下的页面,平台会提供一个fileauth.txt文件,文件内容如下所示。

按照提供的操作指引,一步步操作。

这一步主要是把fileauth.txt放到我们申请的域名的服务器规定目录下,然后平台会扫描这个文件,如果能扫描到,就会提供一个SSL证书。这个时间应该比较快,有几分钟就差不多能通过审核,提供SSL证书下载。

第二步,将SSL证书加入到tomcat中。

通过审核后,就会出现SSL证书已颁发,提供了证书的下载。

证书下载后,是一个压缩文件,解压后的目录结构。

在根目录有一个xxx.com.csr的文件,在tomcat目录下有一个xxx.com.jks的文件,我们就使用jks这个SSL证书。

在tomcat中安装SSL证书,大体按照指引文档就可以,略有区别。地址https://cloud.tencent.com/document/product/400/4143

配置SSL连接器,将xxx.com.jks文件存放到conf目录下,然后配置同目录下的server.xml文件:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

keystoreFile="conf/www.domain.com.jks"

keystorePass="changeit"

clientAuth="false" sslProtocol="TLS" />

此处,需要修改的地方主要有三处。Protocol,keystoreFile,keystorePass。

protocol="org.apache.coyote.http11.Http11Protocol"

keystoreFile="conf/xxx.com.jks",就是放到conf目录下的SSL证书文件。

keystorePass="abcdef" ,就是前面设置的密钥密码。

到conf目录下的web.xml。在</welcome-file-list>后面,</web-app>,也就是倒数第二段里,加上这样一段

<login-config>

<!-- Authorization setting for SSL -->

<auth-method>CLIENT-CERT</auth-method>

<realm-name>Client Cert Users-only Area</realm-name>

</login-config>

<security-constraint>

<!-- Authorization setting for SSL -->

<web-resource-collection>

<web-resource-name>SSL</web-resource-name>

<url-pattern>/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

这步目的是让非ssl的connector跳转到ssl的connector去。所以还需要前往server.xml进行配置:

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="443" />

redirectPort改成ssl的connector的端口443,重启后便会生效。

在tomcat中加入SSL腾讯云证书的步骤的更多相关文章

  1. 在 Tomcat 中配置 SSL/TLS 以支持 HTTPS

    本件详细介绍了如何通过几个简单步骤在 Tomcat 中配置 SSL/TLS .使用 JDK 生成自签名的证书,最终实现在应用中支持 HTTPS 协议. 生产密钥和证书 Tomcat 目前只能操作 JK ...

  2. uni-app + Cloudbase——uni-app 项目中如何使用腾讯云开发后端服务

    1 基本介绍 uni-app 是一个基于 Vue.js 的跨端开发框架,一套代码可以发布到 App.小程序.Web 等不同平台 腾讯云开发平台 Cloudbase 提供的 @cloudbase/js- ...

  3. 【get√】golang中实现从腾讯云CVM查询网卡流量的两种方法

    公众号文章链接 主要参考了以下位置的资料: 云服务器监控接口 腾讯云go-sdk example 方法一:使用腾讯云go-sdk go.mod文件中增加这样一行: github.com/tencent ...

  4. Tomcat中的ssl安全信道的实现

    为了实现https协议通信,tomcat需要利用JSSE把SSL/TLS协议集成到自身系统上,通过上一节我们知道不同的厂商可以实现自己的JSSE,而tomcat默认使用的是以前sun公司开发实现的包而 ...

  5. tomcat中配置ssl的http协议

    问题: IDEA配置tomcat后运行时报如下错误: Error running wis-client-web: SSL HTTP Connector node not found: set up o ...

  6. 阿里云和腾讯云免费SSL证书 专题

    阿里云部署SSL证书 http://www.cnblogs.com/sslwork/p/5984167.html 查找中间证书 为了确保兼容到所有浏览器,我们必须在阿里云上部署中间证书,如果不部署证书 ...

  7. 微信小程序腾讯云配置Tomcat https端口

    在个人开发微信小程序时,发布之前要配置微信小程序的域名https及域名的SSL证书的申请及安装 我用的是腾讯云,SSL证书申请好之后,点击下载,解压文件夹,会有如图,根据你要配置的服务器是哪种,我是t ...

  8. centos apache 腾讯云ssl证书配置

    首先向证书机构申请https证书,会得到证书和私钥,这里我以腾讯云证书安装为例(非常简单) 分两步走 1.申请 点击腾讯云控制台->产品模块下的ssl证书管理->点击申请证书(免费的,不要 ...

  9. 在腾讯云服务器上安装JDK+Tomcat并启动tomcat

    由于Java web项目需要使用到tomcat所以决定在腾讯云服务器(centos7.X)上安装JDK和tomcat,来部署我们的项目. 准备工具: 云服务器:centos7.x+ 本地连接服务器:X ...

随机推荐

  1. Debian+Django+uWsgi+nginx+mysql+celery

    下载系统各种依赖 nano /etc/apt/sources.list 在Debian中使用apt-get安装软件包时经常会提示让你插入netinst的光盘: Media change: please ...

  2. 【ES6】Generator+Promise异步编程

    一.概念 首先我们要理解Generator和Promise的概念. Generator:意思是生成器,可以在函数内部通过yeild来控制语句的执行或暂停状态. *Foo(){ yeild consol ...

  3. Cesium 中阻止镜头飞至地表以下

    Cesium 镜头飞至地表下后会看到破损的地表,影响用户体验,github上有人给出了解决方法,记录如下: github 问题讨论地址 代码: var viewer = new Cesium.View ...

  4. HDU 2243考研路茫茫——单词情结 (AC自动机+矩阵快速幂)

    背单词,始终是复习英语的重要环节.在荒废了3年大学生涯后,Lele也终于要开始背单词了. 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法.比如"ab",放在单词前一般 ...

  5. LOJ.6060.[2017山东一轮集训Day1/SDWC2018Day1]Set(线性基)

    LOJ BZOJ 明明做过一道(最初思路)比较类似的题啊,怎么还是一点思路没有. 记所有元素的异或和为\(s\),那么\(x_1+x_2=x_1+x_1\ ^{\wedge}s\). \(s\)是确定 ...

  6. php获取微信基础接口凭证Access_token

    php获取微信基础接口凭证Access_token的具体代码,供大家参考,具体内容如下 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进 ...

  7. Windows环境下,本地Oracle创建dblink连接远程mysql

    前言 我的情况是,本地安装了oracle(安装完成后带有SQL Developer,不需要再安装instantclient),创建dblink去连接远程的mysql.有些朋友可能是 本地使用PL\SQ ...

  8. SDN网络中hypervisor带来的控制器时延(Hypervisor位置的优化)

    一,问题背景 1.介绍监督器大部分由软件实现,可灵活放置,高效的SDN网络虚拟化需要复杂的技术来放置hypervisor在合适的位置,才能提供租户最佳的性能.称为k-Network Hyperviso ...

  9. 关于Promise层层嵌套可读性差问题

    Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象 ES6 规 ...

  10. python学习:continue及break使用

    continue及break使用 #continue 作用:结束本次循环,继续下次循环#break 作用:跳出整个当次循环 for i in range(10): if i < 5: conti ...