目录
- 1.前言
- 2.配置须知
- 3.准备SSL证书——xxx.pfx格式
- 4.拷贝证书文件至SpringBoot工程
- 5.SpringBoot配置文件.yml——引入SSL证书参数
- 6.SpringBoot配置Application启动类
- 7.本机电脑测试部署SSL证书
- 8.阿里云轻量应用服务器测试部署SSL证书
- 9.总结
提醒:若按本博文步骤完成,还是显示不安全,重启阿里云轻量应用服务器,亲测~!~!~,这个浪费我半天时间。是证书解析没刷新造成的,从而访问量旧SSL证书密钥。
1.前言
上一章,介绍了阿里云轻量应用服务器系统Tomcat中部署安装阿里云SSL证书,通过https服务访问Tomcat服务器443端口,从而实现https://域名,访问Tomcat安装路径中webapps目录下JavaWeb网站项目。CentOS7.3镜像Tomcat8.5.69部署SSL证书,教程传送门链接:
(Linux笔记)CentOS7.3镜像Tomcat8.5.69部署SSL证书——Linux系统
CSDN链接:https://blog.csdn.net/qq_39038178/article/details/119516217
本章介绍,使用SpringBoot-v2.5.3,部署安装阿里云SSL证书,项目打成jar包后,运行在阿里云轻量应用服务器上,Google浏览器显示证书安全等信息,那么,咱们开始啦~!~!~!
2.配置须知
使用注意:
(1)SpringBoot内置Tomcat服务器,在本机电脑测试https服务部署的SSL证书时,需要stop关闭Windows系统Tomcat服务器,避免端口占用问题。
(2)部署在阿里云服务器上同理,检查SpringBoot配置文件设置的端口号占用以及重定向端口等问题(http+https),建议,stop关闭阿里云服务器Linux系统Tomcat服务器。总言而之,避免端口冲突,才正常运行。
3.准备SSL证书——xxx.pfx格式
阿里云申请免费的SSL即可,把域名绑定的SSL证书下载到本机桌面上,如下:
说明:两个证书文件(仅本次下载有效)
——xxx.pfx:证书源文件
——xxx.txt:证书唯一密码
4.拷贝证书文件至SpringBoot工程
解压证书压缩包文件,两个文件复制到SpirngBoot项目工程的resources资源根目录下:
5.SpringBoot配置文件.yml——引入SSL证书参数
application.yml:添加配置参数
server:
# 默认访问端口443。作用:访问https时,不需要添加端口443: https://域名
# 例如:”port: 8443“ 时,https访问时,需要添加端口8443: https://域名:8443
port: 443
ssl:
# resources根目录的”证书源文件.pfx“
key-store: classpath:证书源文件.pfx
# “.pfx”证书对应格式,“.jks"证书对应“RSA”
key-store-type: PKCS12
# ”.txt“证书密码
key-store-password: QWORqu7g
6.SpringBoot配置Application启动类
配置步骤:获取Tomcat工厂实例tomcat ——自定义连接参数createHTTPConnector方法——return返回连接信息给方法——add添加至tomcat实例——return返回添加信息给tomcat工厂
@SpringBootApplication
@MapperScan("work.lpssfxy.www.campuslifeassistant.mapper")
public class CampusLifeAssistantApplication {
public static void main(String[] args) {
SpringApplication.run(CampusLifeAssistantApplication.class, args);
}
//SpringBoot-v2.0+配置方式
@Bean
public ServletWebServerFactory servletContainer() {
//创建Tomcat服务器工厂实例
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
//添加此tomcat实例其它连接参数
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
/**
* 配置tomcat自定义连接参数
* @return
*/
private Connector createHTTPConnector() {
//Connector port有两种运行模式(NIO和APR),选择NIO模式:protocol="org.apache.coyote.http11.Http11NioProtocol"
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//同时启用http(8080)、https(8443)两个端口
connector.setScheme("http");
//设置安全连接标志,该标志将被分配给通过该连接接收的请求
//secure新的安全连接标志
//如果connector.setSecure(true),则http使用http, https使用https; 分离状态,因此设置false
connector.setSecure(false);
//http默认端口
connector.setPort(80);
//重定向证书端口443,便于http自动跳转https
connector.setRedirectPort(443);
return connector;
}
}
7.本机电脑测试部署SSL证书
(1)运行SpringBoot工程项目,如下:
(2)打开Google浏览器,URL地址栏输入测试http:http://localhost
说明:
分析不安全原因:因为此处使用本机IP地址作为请求地址。
解决不安全方法:
——SpringBoot工程项目,打包成jar包格式。
——购置1台云服务器(本人使用阿里云轻量应用服务器Linux7.3)
——域名完成ICP备案(域名已完成云解析DNS)
——项目jar包上传到云服务器中
——进入jar目录,执行命令:" java -jar 项目名称.jar & "
(3)打开Google浏览器,URL地址栏输入测试https:https://localhost
******未解决:http未实现自动跳转https,奇怪~~~******
8.阿里云轻量应用服务器测试部署SSL证书
说明:
——已正确配置JDK1.8环境变量
——stop关闭轻量应用服务器Tomcat服务,避免443端口+80端口已占用
(1)443端口已占用:报错如下:
解决443端口已占用:cd进入轻量应用服务器tomcat安装路径根目录,执行命令:“bin/shutdown.sh”关闭tomcat服务,关闭就不占用443端口了。
(2)打包SpringBoot工程项目,target目录生成.jar包,使用Maven打包命令:“mvn package”——BUILD SUCCESS——完成打包。
(3)xftp工具连接阿里云轻量应用服务器,上传至指定目录(存放目录自选)
(4)xshell工具连接阿里云轻量应用服务器,cd进入/usr目录,使用jar执行命令“java -jar campuslifeassistant-0.0.1-SNAPSHOT.jar &”——单次执行有效,窗口关闭,启动jar工程也随之关闭(当前ssh窗口关闭时,程序中止运行)
(5)Linux下持续运行campuslifeassistant-0.0.1-SNAPSHOT.jar程序,执行命令:“nohup java -jar campuslifeassistant-0.0.1-SNAPSHOT.jar &”——(不挂断运行命令,当ssh窗口或云服务器账户退出或终端关闭时,程序仍然运行)
说明:
——执行“nohup”命令时,SpringBoot启动全部信息,默认存入nohup.out的文件中,支持指定存入文件。
——执行“nohup”命令时,指定存入文件:“ nohup java -jar java -jar campuslifeassistant-0.0.1-SNAPSHOT.jar & >custom_out.txt & ”,SpringBoot启动全部信息,存入存储在custom_out.txt的文件中,这里面的内容会忽略掉,还是自动添加到nohup.out文件中
——
(6)杀死进程:关闭nohup后台持续运行.jar程序:先使用“ jobs -l ”查看运行的后台进程,查询出 “ 进程号 Running ”,使用“ kill -9 进程号 ”,即可杀死运行中进程的.jar程序。
(7)打开Google浏览器,URL地址栏输入测试https:https://域名
9.总结
仅自己学习记录,如有错误,敬请谅解~,谢谢~~~