Tomcat9使用免费的Https证书加密网站

news/2024/5/11 21:38:58/文章来源:https://blog.csdn.net/weixin_34234823/article/details/89650028

1.概述

Apache Tomcat是一款优秀的Java Web容器,对于各个站长来说,可以很方便的使用Tomcat将自己的网站博客放在公网的服务器上,分享自己的心得以及个人博客。

那么在公网中的访问,没有被第三方公认可信的机构加密时,会默认使用Http协议,以明文将自己的网站在公网上传输。这对于大部分领域都没关系,但是对于某些敏感的数据,甚至机密需要保护的数据,例如:银行卡号、银行密码、手机验证码之类的信息,一旦被别有用心的人在中途使用抓包工具拦截,那么将会导致不可设想的后果。

那么网站需要使用SSL(Secure Sockets Layer),顾名思义,安全的套接字层。通过这层提供的保障,在SSL上面运行的应用都可以安全传输。

本文第二部分介绍如何获取免费的证书,第三部分介绍如何用已有的证书在Tomcat中配置,使得Https能够运作,最后一部分介绍,如何在浏览器中输入地址,自动由Http转发到Https上,有需要的读者可以根据需要跳过相应部分。

2.获取证书

对于Https的证书,相当于是在传输过程中加入了第三方的验证机制,简称CA(Certificate Authority),确保传输的安全性。对于大部分证书,签发是需要一定的费用的,本段落主要介绍免费的证书提供方:FreeSSL

官方地址:https://freessl.org/

具备SSL免费证书申请的前提是,先得有一个域名,没有域名的用户可以先移步阿里云或者腾讯云等域名交易网站购买域名,本例中,我使用自己的已有域名:letcafe.cn作为样例

下面介绍如何获取免费域名Https证书

步骤1、输入你所购买的域名

步骤2、选项默认,如果没特殊需求按步骤填入邮箱后创建:

步骤3、创建完成后,等待几秒后,将会生成一个域名解析DNS的验证环节。对此,需要您去域名供应商网站添加解析,例如,我是用的是阿里云,我在:阿里云->控制台->域名与网站,找到对应的域名添加解析

解析示意图如下:

解析添加完成后,等待将近一分钟,可以回到FreeSSL验证DNS,单击“点击验证”按钮后,将会返回你的CA证书以及公钥

然后点击证书下载,即可获得带有full_chain.pem的文件以及叫private.key的私钥,到此,免费的证书已经申请完毕,下一步将Tomcat的对应内容加入HTTPS

3.配置Tomcat

3.1 生成jks文件

由于Tomcat证书不支持直接使用pem + 私钥的方式,因此,需要多一步使用Openssl将full_chain.pem+private.key转换为jks的步骤,首先将full_chain.pem和private.key上传至服务器的任何目录,我存放的目录是:/root/apache-tomcat-ssl,如下图:

随后使用如下命令,在当前目录下生成一个名为freeSSL.jks的文件,如果使用不了如下命令,尝试考虑升级Openssl到最新版本:

openssl pkcs12 -export -out /root/apache-tomcat-ssl/freeSSL.jks -in ./full_chain.pem -inkey ./private.key

命令过程中会要求输入keystore密码,两次确保一致,并记住该密码,为了演示,我输入的密码为:123456(产品环境下,请确保安全换成其他复杂密码

3.2 配置server.xml

编辑Tomcat目录下的server.xml文件,文件路径位于:$CATALINA_HOME/conf/server.xml,取决于你的Tomcat安装在何处。

在Connector中,添加如下Connector:

代码附上:

这一步中的keystoreFile填写之前使用Openssl生成的jks文件,keystorePass使用之前输入的密码。

<Connector
protocol
="org.apache.coyote.http11.Http11NioProtocol"port="443" maxThreads="200"scheme="https" secure="true" SSLEnabled="true"keystoreFile="/root/apache-tomcat-ssl/freeSSL.jks" keystorePass="123456"clientAuth="false" sslProtocol="TLS"/>

此外,为了将Tomcat监听80端口,并将HTTPS请求转发到443端口(443为SSL默认端口),还需要将server.xml文件中原有的Connector修改为如下:

将port="8080"改为port="80",redirectPort="8443"改为redirectPort="443"

修改好,保存退出,重启Tomcat,在公网上访问输入地址:letcafe.cn,发现虽然:

通过输入https://letcafe.cn。实现了网站上的小锁显示了

但是输入letcafe.cn后,却失去了Https的加密:

但是,不能用户每次都去手敲HTTPS对不对,此时的Tomcat是会对默认继续使用HTTP,所以如果需要将该域名下的所有访问都走HTTPS加密的话,需要将所有对Tomcat的THHP访问都默认转发给HTTPS的访问,实现不管输入letcafe.cn还是https://letcafe.cn都访问的是HTTPS(如果没有此需求,可不需要下一步)

4.转发Http请求到Https

这一步非常简单,编辑$CATALINA_HOME/conf/web.xml文件,在其中添加如下代码:

代码如下:

  <!-- 增加所有网址自动跳转https --><security-constraint><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>

保存后重启Tomcat,即可完成目标

5.访问测试

在浏览器中输入:letcafe.cn或者https://letcafe.cn或者http://letcafe.cn都可以实现访问定向到https://letcafe.cn中

6.可能会遇到的问题

如果访问不了确认如下问题是否解决:

1.防火墙是否开放端口,CentOS中是firewalld,是否添加了443和80端口

解决方案:添加端口并重载防火墙规则命令如下:

1 firewall-cmd --zone=public --add-port=80/tcp --permanent
2 firewall-cmd --zone=public --add-port=443/tcp --permanent
3 firewall-cmd --reload

查看服务器已对外开放端口命令,确认是否已放通80与443端口:

firewall-cmd --zone=public --list-ports

2.云服务提供商的拦截规则时候设置开放端口,例如:

阿里云->控制台->云服务器ECS->你的服务器->更多->安全组配置

配置规则中,加入80和443端口的开放,具体配置参照阿里云文档,腾讯云等其他服务商也类似,需要在服务器端先开放云服务商的拦截配置。

配置HTTPS踩了一些坑,希望能分享帮到他人,如有疑问,欢迎留言!

 

作者:letcafe
出处:http://www.cnblogs.com/letcafe/

-------------------------------------------

个性签名:编程水太深,先会造轮子!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_770396.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态网站的技术路线_如何对网站结构方面进行优化呢?

关于网站结构优化对于很多人来说有点陌生&#xff0c;今天搜到老张就带大家了解一下网站结构优化的相关知识点。网站结构优化在网站优化过程中重要的一部分&#xff0c;那么在进行网站结构优化的过程中有那些细节是需要引起大家注意的呢&#xff1f;1、URL优化&#xff1a;通过…

同一个页面生成多个sessionid_网站在线客服代码生成工具

摘要&#xff1a;在线客服代码生成工具一直以来是想要给网站添加在线客服的用户所需要的&#xff0c;通过生成出来的代码复制到网站上可以直接实现在线客服的功能&#xff0c;本文将重点为大家推荐这款在线客服代码的生成工具。在线客服代码如何生成想要获取在线客服代码&#…

网站实现https 申请Let's Encrypt永久免费SSL证书

2019独角兽企业重金招聘Python工程师标准>>> Lets Encrypt简介 Lets Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用&#xff0c;是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起&#xff0c;主要的目的也是为了推进网站从HTTP向HTTPS过度…

php 网站 seo,SEO技术:PHP页面的SEO优化

江苏金鼎网络科技 > 行业动态 > SEO技术&#xff1a;PHP页面的SEO优化SEO技术&#xff1a;PHP页面的SEO优化编辑 :金鼎网络 时间 : 2019-07-11 10:50 浏览量 : 85PHP是一种快速的服务器端语言&#xff0c;通常用于创建MySQL的依赖项和新名称&#xff0c;并使用PHP进行简单…

Java生成sitemap网站地图

sitemap 是什么&#xff1f;对应没有接触过网站 SEO 的同学可能不知道&#xff0c;这里引用一下百度站长的一段解释。 Sitemap&#xff08;即站点地图&#xff09;就是您网站上各网页的列表。创建并提交Sitemap有助于百度发现并了解您网站上的所有网页。您还可以使用Sitemap提供…

28.分析采集美团网站信息-2

28.分析采集美团网站信息-2 接着昨天的思路&#xff0c;继续分析&#xff0c;要想获取信息&#xff0c;就要抓获xhr中js请求。如图&#xff1a; 1.明显可以看的出request url 是由若干参数拼接而成。2._token 参数很显而易见 是个重要的请求参数&#xff0c;而且在一段时间内是…

网站实时镜像

问题 公司的网站服务器有两个镜像站点&#xff0c;分别放在北京和上海的IDC机房。现在要求利用rsync同步机制实现“服务器A–>服务器B”的实时镜像同步。 需要完成的配置任务如下&#xff1a; 1)双方的目录均为 /var/www/html/ 2)以 svr5 为同步发起方&#xff0c;配置 in…

LINUX 配置httpd网站服务

问题 默认安装的httpd服务并未指定域名&#xff0c;因此启动服务时会出现“httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName”的异常信息&#xff0c;本例中要求将Web网站的名称设置为svr5.tedu.cn。 另外&am…

LINUX 网站实时镜像

问题 公司的网站服务器有两个镜像站点&#xff0c;分别放在北京和上海的IDC机房。现在要求利用rsync同步机制实现“服务器A–>服务器B”的实时镜像同步。 需要完成的配置任务如下&#xff1a; 1)双方的目录均为 /var/www/html/ 2)以 svr5 为同步发起方&#xff0c;配置 inot…

网站性能优化有哪些方法

网站性能优化有哪些方法 一、总结 一句话总结&#xff1a; web前端性能优化&#xff1a;浏览器访问优化、CDN加速、反向代理 应用服务器性能优化&#xff1a;分布式缓存、异步操作、使用集群、代码优化 web前端性能优化方法有哪些1. 浏览器访问优化&#xff1a;减少http请求&am…

php 实时监测网站是否异常_导轨式智能电表COUNTISE02电量监测型

导轨式智能电表COUNTISE02电量监测型导轨式智能电表COUNTISE02电量监测型导轨式智能电表COUNTISE02电量监测型江苏舜高智能科技有限公司(Synchro Intelligent)致力于为用户端能效管理和用电、设备运维的系统解决方案&#xff0c;帮助用户实现能源的可视化管理&#xff0c;能源数…

rsync+rsync同步和网站实时镜像

2.rsyncrsync同步 采用rsyncSSH的远程同步时&#xff0c;使用起来是最简单的&#xff0c;但是目标用户也被允许SSH登录到远程主机的Shell环境。在某些情况下&#xff0c;企业会希望只提供需要认证的同步目录资源&#xff0c;但并不希望提供远程登录&#xff0c;这时候就可以采…

一个网站大概多少钱_做一个医疗网站需要多少钱?

相信很多医疗从业者对于互联网的的需求无非就是关注网站设计的价格。但是如果真有这样的网站设计公司没有了解医疗行业就去给你们报价的话&#xff0c;那么这样的公司做的网站更多的会不契合医疗企业。所以真的想知道做一个医疗行业网站设计需要多少钱&#xff0c;那么就需要去…

php网站 被 黑_10.3期玉落清盘作者:枸杞黑乌龙+不二选择作者:仲希

全世界只有不到3 % 的人关注了 壹号书单你真的真的很了不起文末卡片求姐妹们点一下呀&#xff0c;点进去退出就好&#xff0c;不用下载不用关注&#xff0c;不麻烦哒~非常感谢啦~- 2020.10.03 -今日新文《玉落清盘》作者&#xff1a;枸杞黑乌龙原文地址&#xff1a;http://www.…

长尾词推广系统推荐乐云seo_SEO优化应该怎么布局关键词?怎样做效果更好?

在移动互联网发展面前&#xff0c;各行各业的发展都是非常激烈&#xff0c;所以为了让自己在网络平台上获得较好的人流量及较好的转化&#xff0c;很多企业都会寻找好的方法实现企业的曝光。而SEO目前是大多数企业采取的有效方法之一&#xff0c;它是能一种引擎搜索自然获得网站…

php域名下载,php域名授权源码_网站授权系统下载

源码介绍安装说明&#xff1a;php域名授权源码_验证域名IP双重验证盗版追踪 完整可用就是一款php验证系统&#xff0c;谁用谁知道&#xff0c;某站很多人卖的都缺少关键的验证文件&#xff0c;没有验证文件还要验证系统吗&#xff1f;详细安装见附件说明文档。授权中心相关tzhu…

beast软件linux用法,网络设置及启动引导项 - 黑苹果驱动高手篇 MultiBeast用法进阶_Linux教程_Linux公社-Linux系统门户网站...

网络设置项Network即网络设置项&#xff0c;包含几款主流的板载网卡驱动包&#xff0c;选择一项就行。▲网络设置项以下为各选项含义&#xff1a;Lnx2Macs RealtekRTL81xx Ethernet&#xff1a;选择此项将打开Lnx2Mac的 Realtek 81xx 以太网控制器驱动安装程序&#xff0c;将安…

本地服务器缓存网站文件,本地服务器缓存

本地服务器缓存 内容精选换一换对于磁盘增强型弹性云服务器&#xff0c;可使用本地盘和云硬盘两类磁盘存储数据。本地盘常用于存放用户的业务数据&#xff0c;磁盘吞吐量更高。由于磁盘增强型弹性云服务器不支持规格变更&#xff0c;因此&#xff0c;当本地盘容量不足时&#x…

java 快排_干货文章!揭秘seo快排原理

小编点评&#xff1a;快排的目的就是有排名&#xff0c;有排名就有流量&#xff0c;在如今流量为王的时代有流量就有价值&#xff0c;不过每个站都有自己的定位和方向&#xff0c;获取流量的方式也各不相同&#xff0c;适合自己的路子更重要!众所周知&#xff0c;最近几年互联网…

网页配色网站

网站的配色方案决定了访问者对网站的第一印象&#xff0c;有很多工具可以帮助选择合适的配色方案&#xff0c;本文为网站设计者介绍五款免费的优秀网站配色方案工具。1. KulerKuler是一款倍受专业网页设计人员喜爱的工具&#xff0c;它在配色方案中增加了社会化媒体和网络因素…