【SSL】如何使用SpringBoot内置的tomcat配置SSL,从而实现HTTPS访问(基于阿里云云服务器)
文章目录
前言
最近在捣腾一个小程序,我负责完成后端接口的设计、功能的实现。由于小程序中请求接口需要https格式,因此在使用tomcat部署代码时,出了点小问题,写一篇博客记录一下,方便自己也方便他人。
正文
在实现https访问之前,我们需要下载SSL证书,由于我用的是阿里云服务器,所以可以直接从阿里云中申请免费的证书
SSL证书的申请
先进入阿里云控制台,在产品与服务中找到SSL证书,如下图所示
找到你申请过的SSL证书(由于笔者已经申请过,且申请教程在网上有很多,这里不讨论如何申请,如果不懂的可以直接戳下面的教程申请SSL证书最新阿里云申请免费SSL证书实现网站HTTPS化(图文教程一))
选中已签发,点击你的SSL证书并下载
这里根据大家的服务器进行下载,由于我用的是tomcat,所以直接下载tomcat版本的证书
下载之后的文件内容如下,其中包括一个pfx文件,一个pfx密码文件,到这一步证书的准备工作就完毕了。
将证书复制到项目中并进行配置
打开我们的项目目录,在src->main->resources中,把我们刚刚的证书文件放进去
打开application配置文件,添加如下代码
其中key-store: 填写你的pfx证书文件,比如key-store: classpath:1234567_baidu.cn.pfx
key-store-password: 填写pfx-password.txt文件中的密码
(注意!!!每个属性的分号后面必须加个空格,比如port: 443,而不是port:443)
server: port: 443 ssl: key-store: classpath:15XXXXXXXXXX.cn.pfx key-store-type: PKCS12 key-store-password: 这里填pfx-password.txt的文件内容
再多说一句
如果之前一直都是jar包的方式部署到tomcat的小伙伴,可以跳过这一部分。
由于一开始我是采用导出war包的方式部署到tomcat服务器,因此可能会在pom.xml中会添加如下的代码:
<packaging>war</packaging>
这时候使用maven导包的时候,就需要把war改成jar。
因为war包形式部署一般都是将整个war包放在tomcat中的webapps目录中启动,使用的是服务器的tomcat,然而SpringBoot会自动嵌入tomcat,所以我会在pom.xml中再添加如下代码:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat插件 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 移除之后会报错,加入下面的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
但是这时候我们使用的是jar包形式部署,jar包形式直接使用SpringBoot内置的tomcat,因此我们需要把上面的代码注释掉或者删掉,更改后如下所示:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat插件 --> <!-- <exclusions>--> <!-- <exclusion>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-tomcat</artifactId>--> <!-- </exclusion>--> <!-- </exclusions>--> </dependency> <!-- 移除之后会报错,加入下面的依赖 --> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-tomcat</artifactId>--> <!-- <scope>provided</scope>--> <!-- </dependency>-->
这一部分只是针对类似我这种情况的小伙伴提出的建议,如果一直都是采用jar包方式部署则可以忽略直接看下一部分。
运行jar包
我比较喜欢在运行jar包时同时创建日志,方便自己后期的检查维护,因此我们直接到jar包的目录下,输入如下Linux命令行
nohup java -jar test.jar >temp.txt &
nohup就是不挂断运行命令,如果终端关闭时,仍然可以运行此jar包,后面的temp.txt就是日志文件,没有则自动创建,当然你也可以选择不输出日志文件,命令行如下所示
nohup java -jar test.jar &
使用https访问
在浏览器中输入你的url,成功访问!
总结
有时候太多事情了,不知道从何开始就会想偷懒,放松一下,结果偷懒之后发现自己过的好空虚,刚刚偷懒的时间就这么浪费了,很是自责。
其实只要敢于尝试、迈出第一步,把困难一个一个解决后发现其实也没啥,只是当初自己不敢迈出去而已。
加油!不断发现问题并解决问题!
- 点赞 1
- 收藏
- 分享
- 文章举报
- 使用群辉内置tomcat配置https访问和配置ssl
- Springboot配置使用ssl,使用https
- 普元 EOS Platform 7.6 如何配置tomcat证书,使用https访问应用
- 本地Tomcat配置ssl 实现https访问
- https spring boot (tomcat) 阿里云服务器配置
- 阿里云ECS申请免费ssl证书,实现Tomcat访问域名,使用Https访问
- 阿里云申请免费SSL证书,并配置到Tomcat,实现https访问
- spring boot 实际应用(一) 内置tomcat 实现JMX配置
- Nginx + 阿里云SSL + tomcat 实现https访问代理
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)
- SpringBoot 常用配置 静态资源访问配置/内置tomcat虚拟文件映射路径
- 关于springboot 配置ssl 进行https访问
- Spring Boot 菜鸟教程 27 内置tomcat访问https
- 本地Tomcat配置ssl 实现https访问
- 阿里云申请的免费证书,配置到Tomcat,实现https访问
- 如何优雅的使用springboot项目内置tomcat
- 如何通过手机客户端Android、Iphone 等访问要求使用客户端证书SSL加密的https网站
- tomcat同时使用http和https访问的配置方法
- 如何配置和使用Tomcat访问日志
- 使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中