IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 打包Springboot项目并配置https协议访问 -> 正文阅读

[Java知识库]打包Springboot项目并配置https协议访问

项目目录

项目非常简单,就是用来测试的
在这里插入图片描述
HttpsApplication.class

@SpringBootApplication
public class HttpsApplication {
    public static void main(String[] args) {
        SpringApplication.run(HttpsApplication.class);
    }
}

HttpsController.class

@RestControlle
@RequestMapping("/https")
public class HttpsController {

    @GetMapping("/get")
    public String get() {
        return "请求成功";
    }
}

application.yml
classpath对应的目录就是项目的resources目录,如果不写classpath就会去项目的根目录下找

server:
  port: 9000
server.ssl.enabled=true
server.ssl.key-store-type=jks
server.ssl.key-store=classpath:localhost.jks
server.ssl.key-store-password=changeit
server.ssl.key-alias=localhost

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lolxxs</groupId>
    <artifactId>springboot_https</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

创建密钥文件

生产环境不要用我的123456密码

keytool -genkey -alias lolxxs -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keystore mykey.jks -dname CN=lolxxs,OU=lolxxs,O=lolxxs,L=HuNan,C=CN -validity 90 -storepass 123456 -keypass 123456
参数名意义
-genkey在用户主目录中创建一个默认文件.keystore,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias别名
-keyalg密钥的算法,默认为DSA
-keysize密钥长度
-sigalg签名算法
-keystore密钥库的名称
-dname指定证书拥有者信息,CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"
-validity创建的证书有效期多少天
-storepass密钥库的密码
-keypass别名的密码

出现如下情况,说是jks使用专用格式,不用管这个警告,真按照它说的执行,到时会启动不成功
在这里插入图片描述

将虚拟机文件传到宿主机

使用Xshell先使用sftp协议连接宿主机,然后执行命令,然后可以取它提示的白色的字的目录下拿到该文件,将该文件放到java项目的resources文件夹下

get mykey.jks

在这里插入图片描述

启动项目

使用postman访问https://localhost:9000/https/get,使用浏览器无法访问,因为我们的证书没有被CA认证,可以看到postman直接访问也访问不了,可以点击下面的Disable SSL Verification,然后就可以访问了

在这里插入图片描述

打包项目

部署可以打包成两种包,war包和jar包,微服务spring-cloud普及后大部分打包都是jar,spring boot既可以打包成war发布,也可以打包成jar包发布

  1. jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置,内置tomcat没有自己的日志输出,全靠jar包应用输出日志,但是比较方便,快速,比较简单。
  2. war包:传统的应用交付方式,需要安装tomcat,然后放到webapps目录下运行war包,可以灵活选择tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日志输出,可以灵活配置安全策略,相对打成jar包来说没那么快速方便

在项目根目录下使用如下命令打包,打包成什么包取决于pom.xml文件的 < packaging > 标签的内容是什么

mvn clean package -Dmaven.test.skip=true

如下,在window使用普通命令行也行
在这里插入图片描述
出下如下信息,没有报错则打包成功
在这里插入图片描述
在target目录下可以看到一个jar文件,将该文件使用Xshell传入虚拟机
在这里插入图片描述
可以直接拖动文件即可上传,也可以执行命令,不过需要根据自己的包在的绝对路径改路径,windows是右斜杠,linux是左斜杠

put D:\projectcode\learn\javaFrame\springboot_https\target\springboot_https-1.0-SNAPSHOT.jar to remote:/root/springboot_https-1.0-SNAPSHOT.jar

在这里插入图片描述

部署项目

1. 直接启动jar包
执行如下命令

java -jar springboot_https-1.0-SNAPSHOT.jar

执行https://192.168.15.141:9000/https/get,ip通过执行ifconfig命令可以查看,然后使用postman请求即可
在这里插入图片描述
当前ssh窗口会被锁定,不能再操作其他命令,如果需要执行其他命令,则需要打断进程,可按CTRL + C打断程序运行,或直接关闭窗口,程序也会退出。

2. 后台启动jar包

java -jar springboot_https-1.0-SNAPSHOT.jar &

&代表在后台运行,当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行

3.后台不挂断启动

nohup java -jar springboot_https-1.0-SNAPSHOT.jar &

用 nohub 命令启动 jar 包,是在后台不挂断运行,关闭终端窗口或者 CTRL + C 命令也不会终止程序,当用 nohub命令启动 jar 包的时候,如果不指定日志输出文件,则所有的输出都会被重定向到 nohub.out 的文件中

可以使用如下命令打印运行日志

cat nohub.out

4.指定日志输出的启动

nohup java -jar springboot_https-1.0-SNAPSHOT.jar >log.out &

通过 >log.out 命令,将程序的日志输出重定向到 log.out 文件中。如果不指定日志输出文件,则会输出到 nohub 命令默认的输出文件nohub.out 文件中

可以使用如下命令打印运行日志

cat log.out

5.指定配置文件启动

nohup java -jar springboot_https-1.0-SNAPSHOT.jar --spring.profiles.active=pro >log.out &

通过 --spring profiles.active=pro 来指定,启动的的是application-pro.yml 或者 application-pro.properties 配置文件

6.指定分配系统资源大小

nohup java -Xms500m -Xmx500m -jar springboot_https-1.0-SNAPSHOT.jar --spring.profiles.active=dev >log.out &

7.指定端口启动

nohup java -jar -Dserver.port=8000 springboot_https-1.0-SNAPSHOT.jar &
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:27:33  更:2022-04-18 17:27:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:34:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码