Spring Boot项目 Linux 服务器配置打包部署后台常驻SSL并设置域名直接跳转https

短学期用一周的时间学了下Spring Boot基础,弄了个小破站,后来想部署到服务器上,还是碰到一些问题的,参考了不少文章,这里总结分享一下,也是为了避免自己以后忘记~

工具准备

本案例用的是腾讯云的域名,阿里云的云服务器ECS(CentOS 8)。在开始之前首先需要

  • 一个准备部署的Spring Boot本地项目
  • 配置完善的Linux云服务器(JDK、MySQL等)(若使用国内云服务器如阿里云则还需先备案)
  • 域名的SSL证书

Spring Boot项目就不说了,超过本文的scope了。稍微说两句最新版JDK和MySql吧,如果已经配置好的直接在目录里跳过:

JDK

我是喜欢追新的,所以直接搜索并安装最新版JDK 14:

yum list java*

list java

yum install java-latest-openjdk*

因为我这台上面都已经装过了,所以就没有安装过程的截图了,下面mysql同样。
装好之后还是打出经典的

java -version

java -version
验证安装成功。

MySQL

一个套路,也是通过yum搜索安装8.0版

yum list mysql*

在这里插入图片描述

yum install mysql*

这样装完默认居然是没有密码的,所以要手动改,改成和本地Spring Boot项目配置文件中设置的密码相同。首先进入MySQL

mysql

修改密码、授予权限

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';

配置完成,先尝试用新密码登录。登录成功后,建一个和本地测试相同的数据库和表。建议直接在IDEA或相应的数据库软件中生成DDL。
SQL Generator
表建完后,随便插入一些测试数据,基本上服务器的MySQL就配置完成了。

SSL证书

腾讯云SSL申请
直接选择免费版,输入域名,五分钟审核通过,其他域名运营商同理。
在这里插入图片描述
下载证书后打开是这样
SSL Cert Files

在项目中配置SSL

本节参考的文章

因为SB内嵌Tomcat,当然是打开Tomcat文件夹,里面会有一个.jks文件和一个keystorePass.txt文件,这里把jks重命名成ssl.jks放到项目resources文件夹下。
完成后在application.properties中配置。因为是要部署到服务器和域名的,所以端口号需要特别注意一下,不然访问的时候输入域名还得再指定端口。key-store-password填txt文件中的密码。

server.port=443
server.custom.http-port=80
server.ssl.key-store=classpath:ssl.jks
server.ssl.key-store-type=jks
server.ssl.key-store-password=********

随后在任意一个JAVA Controller中加入以下代码

    @Value("${server.custom.http-port}")
    private Integer httpPort;

    @Value("${server.port}")
    private Integer httpsPort;
    @Bean
    public TomcatServletWebServerFactory servletContainer() { //springboot2 新变化

        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {

            @Override
            protected void postProcessContext(Context context) {

                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
        return tomcat;
    }

    private Connector initiateHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(httpPort);
        connector.setSecure(false);
        connector.setRedirectPort(httpsPort);
        return connector;
    }

IntelliJ IDEA打包JAR文件

项目配置完成后就可以打包了,在IDEA右边栏的Maven栏中选择“package”
Maven Package
等待一段时间,在项目的target目录中找到打包完成的jar文件
jar

上传并在服务器中后台常驻运行

本节参考的文章

通过Xftp将jar上传到服务器中。
进入jar文件的目录,输入

nohup java -jar projectname-0.0.1-SNAPSHOT.jar > logfilename.log 2>&1 &

jar将会在后台运行,且原本在java控制台输出的内容将会保存到相同目录下的logfilename.log中
log
至此,项目已正常在云服务器中常驻运行,可以通过访问域名直接跳转https,并显示网站安全。
valid cert
如有问题,欢迎探讨和指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值