给服务器上的tomcat添加https协议

Spring Boot项目如何同时支持HTTP和HTTPS协议的实现 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议。 准备 为了使用HTTPS连接器,需要生成一份Certificate keystore,用于加密和机密浏览器的SSL沟通。 如果你使用Unix或者Mac OS,可以通过下列命令:keytool -genkey -alias tomcat -keyalg RSA,在生成过程中可能需要你填入一些自己的信息,例如我的机器上反馈如下: 可以看出,执行完上述命令 阅读详情

生成SSL证书

笔者这里用的是开源的Let's Encrypt的ssl证书,是免费而且好用的

1.下载certbot

# wget  https://dl.eff.org/certbot-auto

2.把文件移动到/usr/local/bin目录下,并赋予执行权限

# mv certbot-auto /usr/local/bin/
# chmod a+x /usr/local/bin/certbot-auto

3.执行下面的命令生成证书

# certbot-auto certonly --webroot -w /home/xx/tomcat6/webapps -d test.omgdba.com -m akaunt@qq.com

命令解释:

–webroot 指定网站根目录,certbot会在该目录下生成一个文件以确认域名对网站的所有权

-d 指定要生成证书的域名,如有多个域名,可使用-d xxx.com -d ex.xxx.com来指定

-m 设置通知邮箱,证书生成后会向该邮箱发送一封邮件

证书生成后有以下提示

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/test.omgdba.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/test.omgdba.com/privkey.pem
Your cert will expire on 2018-07-16. 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”
– 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/你的域名,这个目录下,内容有


下面是在tomcat中配置ssl证书

1.tomcat配置pem证书,需要apr支持

//配置gcc依赖  
# yum install gcc  
  
//安装openssl  
# wget  https://www.openssl.org/source/openssl-1.1.0f.tar.gz  
# tar -zxvf openssl-1.1.0f.tar.gz  
# cd openssl-1.1.0f  
# ./config --prefix=/usr/local/openssl  
# make && make install  
     
     
    
     
   //安装apr  
# cd ..  
# wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.2.tar.gz  
# tar -zxvf apr-1.6.2.tar.gz  
# cd apr-1.6.2  
# ./configure --prefix=/usr/local/apr  
# make && make install  
  
//安装apr-util  
# cd ..  
# wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.0.tar.gz  
# tar -zxvf apr-util-1.6.0.tar.gz  
# cd apr-util-1.6.0  
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr  
# make && make install  
  
//安装tomcat-native  
# cd ..  
# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-connectors/native/1.2.12/source/tomcat-native-1.2.12-src.tar.gz  
# tar -zxvf tomcat-native-1.2.12-src.tar.gz  
# cd tomcat-native-1.2.12-src/native  
# ./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl  
# make && make install  
  
  
//配置环境变量  
# vi /etc/profile  
//在末尾添加  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib  


使profile配置文件生效
# source /etc/profile  

2.tomcat的配置

更改tomcat下conf目录下的server.xml(红色的是修改部分)

(1)该文件的第一处更改(这个80,其实是8080,这样是为了省略端口号):

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
    <!-- A "Connector" using the shared thread pool-->

(2)该文件的第二处修改

<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" URIEncoding="UTF-8">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="/etc/letsencrypt/live/你的域名/privkey.pem"
                         certificateFile="/etc/letsencrypt/live/你的域名/cert.pem"
                         certificateChainFile="/etc/letsencrypt/live/你的域名/chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

(3)该文件的第三处修改

<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
注意:SSL证书需要用到443端口,要保证443端口没有被占用


3.将http强制调转到https

在tomcat的conf文件下的web.xml配置文件末尾的地方添加下面的代码

        <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>

注意:如果证书生成失败,则有可能是因为python的版本过低,ssl证书生成需要的python版本至少是2.7以上

下载&编译&安装新版本的python

1.首先通过下面这个命令检查python版本(注意V是大写的)

# python -V
2.下载python版本,这个是下载地址:https://www.python.org/ftp/python/
# wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

3.下载完解压缩

# tar -zxvf Python-3.5.2.tgz

4.进入解压缩后的目录,安装配置

# cd Python-3.5.2/
# ./configure 
注意:

执行 ./configure 时,如果报错:

configure: error: no acceptable C compiler found in $PATH

说明没有安装合适的编译器。这时,需要安装/升级 gcc 及其它依赖包。

# yum install make gcc gcc-c++ 

完成之后,重新执行:

# ./configure 

5.配置完成后,就可以进行编译了

# make 

6.最后就是安装了

# make install 

安装成功以后,就可以查看 Python 的版本了:

# python -V
Python 2.7.5
# python3 -V
Python 3.5.2

你会发现有俩个python版本,

设置 3.x 为默认版本

查看 Python 的路径,在 /usr/bin 下面。可以看到 python 链接的是 python 2.6,所以,执行 python 就相当于执行 python 2.6。

# ls -al /usr/bin | grep python
-rwxr-xr-x.  1 root root      11216 12月  1 2015 abrt-action-analyze-python
lrwxrwxrwx.  1 root root          7 8月  30 12:11 python -> python2
lrwxrwxrwx.  1 root root          9 8月  30 12:11 python2 -> python2.6
-rwxr-xr-x.  1 root root       7136 11月 20 2015 python2.6

将原来 python 的软链接重命名:

# mv /usr/bin/python /usr/bin/python.bak

将 python 链接至 python3:

# ln -s /usr/local/bin/python3 /usr/bin/python

这时,再查看 Python 的版本:

# python -V
Python 3.5.2

输出的是 3.x,说明已经使用的是 python3了。

配置yum

升级 Python 之后,由于将默认的 python 指向了 python3,yum 不能正常使用,需要编辑 yum 的配置文件:

# vi /usr/bin/yum

同时修改:(如果没有,下面那个文件,就不用修改)

# vi /usr/libexec/urlgrabber-ext-down

将 #!/usr/bin/python 改为 #!/usr/bin/python2.6,保存退出即可。






Tomcat配置HTTPS协议的过程     最近要写一个微信小程序,现在要将前端与后台连通起来。但是微信小程序只支持https协议,而Tomcat默认http协议。所以在这里需要给Tomcat配置https协议。     然而在看过很多的教程后并尝试了很多遍,总是出现问题,感觉每个教程似乎都不完整。因此为了不让此次的努力在时间里消散。特此写下这篇博客,为了让我记住这个完整过程,也为了能更方便别人。 (下边这部分是从http://... 阅读详情

相关推荐

tomcat 配置支持https

在 tomcat/config/server.xml 标签内加入以下内容: httpsServerPort 为监听端口

Hu_wen的专栏 1330

Tomcat配置SSL证书:Connector attribute SSLCertificateFile must be defined when using SSL with APR

只要把conf\server.xml里的protocol修改一下就行了:

weixin_43790429的博客 445

避坑指南:ros2_control在Gazebo中的常见配置错误及解决方案

本文系统梳理了在Gazebo仿真环境中配置ros2_control框架时最常见的错误,并提供了详细的解决方案。重点解析了YAML配置文件的结构陷阱、URDF/XACRO中关键标签的正确写法、Launch文件的启动顺序管理,并分享了实用的调试命令与故障排查思路,帮助开发者高效避坑,实现流畅的关节运动控制。

q5r6s7的博客 972

HTTP协议与HTTPS协议区别及SSL配置方式

简介 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信

willem的博客 1224

机械臂学习:视觉引导——绪论

视觉引导 = 定位 + 引导定位:视觉系统定位到待引导的物体引导:视觉系统引导机械臂按需要的轨迹实现一定的工艺流程(过度点:人为指定机械臂的轨迹防止碰撞)(点云匹配:解决位姿估计姿态估计的问题)无序抓取的三个核心技术:3d识别(图中的点云匹配) 抓取方法路径规划(防止机械臂的碰撞,如自身碰撞等)如果只有同一高度的平移和旋转,其实并不需要点云,用单目就可以做,但是如果涉及到物体的倾斜以及高度的变换,那就是单目力所不能及,所以就是第三种情况:平移旋转加垫高。

2303_80018785的博客 4046

SAP中MRP运行计划行超限问题的分析与解决

SAP中基于生产性物料的采购特点,通常会采用采购计划协议的方式进行采购。其具体的采购计划通常来自于成品计划独立需求,然后通过物料清单,经由MRP跑出。 在采购计划协议中的计划行中,存在一个计划行号,随着MRP在不断跑出新的计划行,该行号资源会消耗完。当计划行号消耗完后,MRP不会再跑出新的计划行。且在MD04或MD02中看不到类似提示信息。此时可以通过MD05来查看是否出现类似下图的提示信息。 ...

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 3845

日常小结-配置https连接器

加密原理对称加密:发送端用一个秘密加密,接收端采用相同的密码解密 缺点:怎么获得相同的密码?不对称加密: 1. 接收端生成密钥:一对公钥、一对私钥。 公钥加密私钥破解,私钥加密公钥破解。 2. 接收端将公钥传给发送端。 3. 发送端用公钥加密后发送给接收端。缺点: 第三方截获公钥后,自己制造一对公钥一对私钥,然后将公钥发送给发送方。 也就是说如何确定公钥是否是正确的公钥。互联网通过ca

千念飞羽的专栏 820

Simpack实战:5分钟搞定轨道车辆车轮不圆的3种定义方法(附详细参数设置)

本文详细介绍了在Simpack中定义轨道车辆车轮不圆的3种高效方法:Radius deviations、Fourier coefficients和Harmonic function,并提供了详细的参数设置指南。通过实战案例和参数优化技巧,帮助工程师快速掌握车轮不圆度的定义与仿真,提升轨道车辆动力学分析的准确性和效率。

weixin_29292535的博客 202

Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决

Tomcat 6版本配置SSL过程有两步: 1、用JDK自带的keytool.exe来生成私有密钥和自签发的证书,如下: keytool -genkey -keyalg RSA -alias tomcat 按提示输入相关内容后,这条命令将在默认密钥库文件里新增一个别名为tomcat的私有密钥项及其自签发的证书。默认密钥库文件为: %USERPROFILE%\.keyst

燃烧JAVA 2111

别只盯着Spectre!Cadence Virtuoso里APS和Spectre X该怎么选?一份给模拟IC新手的指南

本文深入解析Cadence Virtuoso中的三大仿真引擎Spectre、APS和Spectre X,帮助模拟IC新手根据电路规模、精度需求和计算资源做出智能选择。通过对比技术指标和应用场景,提供射频电路、混合信号系统和电源管理IC的优化仿真策略,显著提升设计效率。

weixin_26841743的博客 707

基于STM32设计的个人健康检测仪(华为云IOT)(191)

本系统采用华为云物联网平台实现数据云端存储与分析,并通过自研手机APP提供远程监控界面,让用户无论身处何地都能及时掌握自身的健康数据,为用户提供个性化的健康管理方案,同时也为医疗机构提供了便捷的数据获取途径,助力实现智能化、精细化的医疗服务。

1678

Tomcat8.5服务器配置Https协议的SSL证书及Http自动跳转到Https

笔者用的是阿里云的服务器和免费证书(穷 首先 需要去阿里云的SSL证书管理控制台下载SSL证书 下过来是这样的: 然后 把证书中的pfx后缀的文件复制到 tomcat/conf/cert 目录下 也可复制到tomcat/cert下 看自己喜好 只要配置的时候填写的路径一致即可 注:只需复制pfx文件 cert 目录默认是不存在的 需要自己创建 创建完了把pfx文件传上去即可 然后修改服务器的s...

"✧treasure mountain✧" 8712

13、网络通信中的字节序与内存测试

本文主要探讨了网络通信中的字节序问题以及嵌入式系统中内存测试的相关内容。在网络通信部分,重点分析了大端序和小端序的差异,以及TCP/IP协议中字节序的转换机制,并介绍了相关的宏定义和实现方法。在内存测试部分,详细阐述了内存测试的目的、常见问题以及具体的测试策略,包括数据总线测试、地址总线测试和设备测试。通过这些内容,嵌入式程序员可以更好地理解并解决实际开发中可能遇到的字节序和内存问题,从而提高系统的稳定性和可靠性。

mmm90的博客 111

Tomcat配置HTTPS协议的请求

为了一个https,活脱脱耗费我两天时间,到后面才发现,原来是我把横杠敲错成了下划线,难顶噢。

weixin_44868854的博客 450

把 LangGraph 当“工作流引擎”用:与传统 BPM 的差异与融合策略

首先,我们来回顾一下有限状态机(FSM)的基本定义——一个 FSM 可以用一个五元组MQΣδq0FMQΣδq0​FQQQ有限状态集合,包含 FSM 所有可能的状态;Σ\SigmaΣ有限输入字母表,包含 FSM 所有可能的输入;δ\deltaδ状态转移函数,定义了 FSM 从当前状态q∈Qq \in Qq∈Q接收输入σ∈Σσ∈Σ后,转移到的下一个状态q′∈Qq' \in Qq′∈Q,即δQ×Σ→QδQ×Σ→Q。

AI 原生应用开发的博客 227

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

让用户访问Tomcat时强制跳转到Https方式

让用户访问Tomcat时强制跳转到Https方式。首先配置Tomcat可以在Https下运行,相应的配置,请查看其它说明文档。修改tomcat/conf/web.xml文件,在     下面加上如下语句     CLIENT-CERT  Client Cert Users-only Area         SSL   /*       CONFIDENTIAL    

dfmo的专栏 1491

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

request.getScheme()获取不到https的问题,nginx与tomcat不在同一服务器

最近公司项目升级https,在nginx端配置好后项目打开访问不了资源文件,发现jsp页面中有一句: String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; request.getScheme()获取的地址不是https而是http,而我访问的地址为https,f12打开发现满屏错误码: This request has be

kaisens的博客 4059

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

WebService 采用SSL/HTTPS协议来传输

WebService 是基于SOAP协议传输的,SOAP是以XML文件形式进行信息传输,是明文,这是不安全的,所以我们可以在WebService加上SSL/HTTPS协议来进行数据传输基于Axis的WebService可以很好的实现,在这里我们使用tomcat服务器使用JDK自带的工具创建密匙库和信任库。1)通过使用以下的命令来创建服务器端的密匙库:keytool -genkey -ali

TechChan的专栏 6646

Tomcat9 配置SSL证书(.pfx)支持HTTPS

Tomcat9 配置SSL证书(.pfx)支持HTTPS

wangmingyin的专栏 2260

https 443 怎么改成80_如何安装https证书

“http和https的区别”一个人也要好好吃饭呐。好好吃饭好好睡觉好好照顾自己认真生活,好好吃饭超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解...

weixin_33331063的博客 1135

反向代理Https,Tomcat使用http的问题

反向代理Https,Tomcat使用http的问题...

kinginblue的专栏 3978

关于SSL以及https的相关信息

之前想实现像U盾一样的功能,用户连接到系统需要提供系统识别的身份信息,也就是提供一个由系统签发的证书,所以就想 了解https相关的东西,结果发现这套东西对于我来说太复杂,想要实现的功能可以通过其他的方式来实现,这里就简单的记录一下我 了解的关于https的内容并做一下记录,以备以后的查阅 https是基于SSL(secure socket layer)和TLS(transport Laye

googlevsbing的专栏 829

Tomcat配置SSL证书(https)

vim conf/server.xml 添加以下节点: <Connector port=" " #启用证书使用端口 eg:80 -> 443 protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile=" " #tomcat ssl证书文件所在...

CTRL+C 的博客 611

配置https 类型的 webservice

WebService 是基于SOAP协议传输的,SOAP是以XML文件形式进行信息传输,是明文,这是不安全的,所以我们可以在WebService加上SSL/HTTPS协议来进行数据传输 基于Axis的WebService可以很好的实现,在这里我们使用tomcat服务器 使用JDK自带的工具创建密匙库和信任库。 1)通过使用以下的命令来创建服务器端的密匙库: ...

Epiphone的专栏 581

Tomcat8080、80、8443、443端口及对应http、https协议详解

近期由于项目需要,将购买的阿里云服务器Windows版换成了linux的CentOS版本,tomcat需要重新配置https协议,再次被server.xml里边的这几个connector搞得欲死欲仙,索性这次多深入写了解下它们的区别,也方便下以后跟我踩一样的坑的同学们。 我们要弄清楚的,是以下四个概念: 一、 在tomcat的配置文件中有以下几个常见端口: 8080和80都是HTTP端口,...

待到春花烂漫时 6万+
上一篇: 用ssh协议,虚拟终端putty,xshell登陆远程服务器出现的问题
下一篇: Redis的安装
香草味小布丁
博客等级 码龄10年 461粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值