Spring Mvc和Spring Boot配置Tomcat支持Https

Spring Mvc和Spring Boot配置Tomcat支持Https

背景

最近在项目开发中需要让自己的后端Restful接口支持https,在参考了很多前辈们的博客后总结了一些。

SpringBoot配置支持https

spring boot因为是使用内置的tomcat,所以只需要一些简单的配置即可。

1.首先打开命令行工具,比如cmd,输入以下命令 

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 

注:生成安全证书:在jdk的安装目录下的 D:\Program Files (x86)\Java\jdk1.8.0_131\bin 目录下有keytool.exe     这个就是sun(oracle)公司提供的生成安全证书的工具

2.然后在你的根目录下面会看到一个.p12的文件,如下图所示: 

3.将它移到你的spring boot项目中的resources目录下 

4.最后在application.properties中添加以下配置:

server.port=8888 server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=123456(此处密码为第一步中创建.p12文件时你输入的口令) server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias=tomcat

5.最后启动你的spring boot项目即可用https的方式访问你的接口了。

SpringMvc配置支持https

由于spring mvc的项目需要依赖我们系统安装的tomcat,所以需要对我们系统的tomcat进行相关配置

1.首先同样需要生成密钥文件等 

打开命令行输入 

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "C:\Program Files\Apache\apache-tomcat-7.0.77\bin\tomcat.keystore" 

输入的相关配置和之前spring boot生成的那些问题是一样的

输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: hwangfantasy 您的组织单位名称是什么? [Unknown]: hwangfantasy 您的组织名称是什么? [Unknown]: hwangfantasy 您所在的城市或区域名称是什么? [Unknown]: hangzhou 您所在的省/市/自治区名称是什么? [Unknown]: zhejiang 该单位的双字母国家/地区代码是什么? [Unknown]: cn CN=hwangfantasy, OU=hwangfantasy, O=hwangfantasy, L=hangzhou, ST=zhejiang, C=cn是否正确? [否]: y 输入 的密钥口令 (如果和密钥库口令相同, 按回车):

然后在你的tomcat的bin目录下会出现一个 tomcat.keystore文件。

2.修改server.xml 

找到tomcat/conf目录下面的server.xml。找到其中含有 

Define a SSL HTTP/1.1 Connector on port 8443 

节点的Connector,取消掉原本的注释,并修改成以下内容:

disableUploadTimeout="true" enableLookups="false" maxThreads="25"

port="8443" keystoreFile="/mnt/tomcat_paystack/bin/tomcat.keystore" keystorePass="123456"

protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"

secure="true" sslProtocol="TLS" />

其实就是增加了keystoreFile和keystorePass两个属性,其中keystoreFile最好使用绝对路径,因为如果你和我一样使用intellj idea作为开发工具的话,使用相对路径,则idea启动spring mvc项目是无法成功加载keystore的,因为idea读取的配置是从idea的临时目录下 

C:\Users\hwangfantasy\.IntelliJIdea2017.1\system\tomcat 

读取的,而keystore不会在临时目录下,所以需要改成绝对路径才能保证通过idea去启动tomcat时能成功加载https的配置。

3.最后启动tomcat即可使用https接口 

最后无论是将你的web项目copy到tomcat下的webapps目录下直接启动还是通过idea等工具启动项目和tomcat都可以成功使用https接口了。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值