首页 > 其他分享 >springboot 项目配置https

springboot 项目配置https

时间:2025-01-15 19:57:01浏览次数:3  
标签:www java springboot 配置 server nginx api https root

  • 当你的前端网页添加了 https 后,那么 由于… 前端调用后端的接口,同样的也需要配置 https。下面以宝塔为例,如何实现,请看下面讲解:

1.准备好 SSL 证书

  • application.yml源文件:
spring:
  redis:
    host: 60.204.232.18
    port: 6379
    database: 3
  cloud:
    nacos:
      server-addr: 192.168.15.233:8848


dubbo:
  registry:
    address: nacos://192.168.15.233:8848

server:
  port: 9000
  address: 0.0.0.0

spring:
  cloud:
    gateway:
      routes:
        - id: api-backend
          uri: lb://api-backend
          predicates: Path=/api/backend/**
        - id: api-interface
          uri: lb://api-interface
          predicates: Path=/api/interface/**

logging:
  level:
    org:
      springframework:
        cloud:
          gateway: INFO

dubbo:
  application:
    name: api-gateway-dubbo
    qosEnable: false
    enable-file-cache: false
  protocol:
    name: dubbo
    port: -1

第一步,让我们在 Spring Boot 配置文件中添加 SSL 配置。在您的 application.yml 中添加以下配置:

server:
  port: 9000
  address: 0.0.0.0
  ssl:
    key-store: /www/server/nginx/ssl/60.204.232.18/keystore.p12
    key-store-password: your_password
    key-store-type: PKCS12

首先,我们需要将现有的 SSL 证书转换为 Java 可用的 PKCS12 格式。请执行:

openssl pkcs12 -export -in /www/server/nginx/ssl/60.204.232.18/fullchain.pem -inkey /www/server/nginx/ssl/60.204.232.18/private.key -out /www/server/nginx/ssl/60.204.232.18/keystore.p12 -name tomcat

执行时会要求输入密码,请记住这个密码, 这个密码就是配置到上述 yml 文件中的 your_password,需要配置到 application.yml 中。

  • 结果会生成 这个 keystore.p12

2. 修改前端的 nginx 配置中的代理设置

location /api {
    rewrite ^/api/(.*) /$1 break;
    proxy_pass https://60.204.232.18:9000/api;
    proxy_ssl_verify off;  # 如果是自签名证书,需要添加这行
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
}

请修改配置后执行:

nginx -t && nginx -s reload

3. 重启 springboot 项目

  • 不出意外,可能会出现权限不够的情况
Jan 15 19:19:55 hcss-ecs-1524 spring_api_gateway_1_0_jar[1186650]: Caused by: java.io.FileNotFoundException: /www/server/nginx/ssl/60.204.232.18/keystore.p12 (Permission denied)
Jan 15 19:19:55 hcss-ecs-1524 spring_api_gateway_1_0_jar[1186650]: #011at java.io.FileInputStream.open0(Native Method) ~[na:1.8.0_371]
  • 第一步:检查文件权限和所有者,使用以下命令查看 keystore.p12 文件的当前权限状态:
ls -l /www/server/nginx/ssl/60.204.232.18/keystore.p12
  • 输出
[root@hcss-ecs-1524 ~]# ls -l /www/server/nginx/ssl/60.204.232.18/keystore.p12
-rw------- 1 root root 5090 Jan 15 17:51 

:::success
下一步:运行以下命令查看文件/www/server/nginx/ssl/60.204.232.18/keystore.p12的权限详细信息:

:::

ls -l /www/server/nginx/ssl/60.204.232.18/keystore.p12

输出示例:

-rw------- 1 root root 5090 Jan 15 17:51 /www/server/nginx/ssl/60.204.232.18/keystore.p12

:::success

参数意义:

  1. -rw-------
    • 第一个字符-表示这是一个普通文件。
    • rw-表示文件所有者(root)有读写权限。
    • ---表示文件所属组和其他用户没有任何权限。
  2. 1:文件的硬链接数。
  3. root root
    • 第一个root表示文件所有者。
    • 第二个root表示文件所属组。
  4. 5090:文件大小(字节)。
  5. Jan 15 17:51:文件的最后修改时间。
  6. /www/server/nginx/ssl/60.204.232.18/keystore.p12:文件路径。

:::

  • 使用以下命令查看所有 Java 进程:
ps aux | grep java
[root@hcss-ecs-1524 ~]# ps aux | grep spring_api_gateway
root     1190235  0.0  0.0   9208  1140 pts/1    S+   19:21   0:00 grep --color=auto spring_api_gateway
[root@hcss-ecs-1524 ~]# ps aux | grep java
www       883228  0.2 13.5 3591144 519020 ?      Ssl  15:37   0:34 /www/server/java/jdk1.8.0_371/bin/java -jar -Xmx1024M -Xms256M /www/wwwroot/proj/java-proj/API-Platform/backend/api-interface-1.0.jar --spring.config.location=file:/www/wwwroot/proj/java-proj/API-Platform/backend/config/api-interface/ --spring.profiles.active=prod
www       914538  1.7 17.8 3775112 681888 ?      Ssl  16:01   3:32 /www/server/java/jdk1.8.0_371/bin/java -jar -Xmx1024M -Xms256M /www/wwwroot/proj/java-proj/API-Platform/backend/api-backend-1.0.jar --spring.config.location=file:/www/wwwroot/proj/java-proj/API-Platform/backend/config/api-backend/ --spring.profiles.active=prod
root     1190693  0.0  0.0   9208  1164 pts/1    S+   19:21   0:00 grep --color=auto java
root     3526323 13.3 15.9 3123100 611736 ?      Ssl  Jan13 459:58 /usr/lib/jvm/java-1.8.0-openjdk/bin/java -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms256m -Xmx256m -Xmn512m -Dnacos.standalone=true -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/nacos/conf/ --spring.config.name=application --logging.config=/home/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
[root@hcss-ecs-1524 ~]#
  • 现在我们可以看到Java应用是以www用户运行的。下一步需要修改keystore.p12文件的权限,让www用户可以读取。执行以下命令:
chmod 644 /www/server/nginx/ssl/60.204.232.18/keystore.p12

标签:www,java,springboot,配置,server,nginx,api,https,root
From: https://blog.csdn.net/web2u/article/details/145167002

相关文章

  • 计算机毕业设计Springboot“绿环”垃圾分类回收管理系统 SpringBoot驱动的“绿意”垃
    计算机毕业设计Springboot“绿环”垃圾分类回收管理系统w0nyol05(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着城市化进程的加速,垃圾处理问题日益凸显,成为制约城市可持续发展的关键因素之一。为了有效提升垃圾回收效率,促进资......
  • 计算机毕业设计Springboot“聚力”考研互助系统 “助力”考研互助平台基于Springboot
    计算机毕业设计Springboot“聚力”考研互助系统vldh9109(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着考研竞争的日益激烈,考生们对于信息和资源的需求也日益增长。传统的信息获取方式已难以满足考生多样化的需求,因此,开发一个......
  • 基于springboot学生竞赛管理系统
    一、系统背景与意义随着教育体制的改革和信息技术的发展,学生竞赛活动在学校或教育机构中扮演着越来越重要的角色。然而,传统的竞赛管理方式存在诸多不足,如信息查询不便、管理效率低下等。因此,开发一个基于SpringBoot的学生竞赛管理系统具有重要意义,它可以实现竞赛信息的系......
  • 基于SpringBoot 技术的智慧云停车场服务管理系统
    一、系统背景与意义随着城市化进程的加快和汽车保有量的不断增加,停车难问题日益突出。传统的停车场管理方式存在着效率低下、管理成本高、用户体验差等问题。因此,开发一个基于SpringBoot技术的智慧云停车场服务管理系统具有重要意义。该系统能够实时采集和处理停车场数据,提......
  • 基于springboot的渔具管理系统
    一、技术架构前端:采用Vue.js框架构建用户界面,Vue.js以其轻量级、高效的数据绑定机制和易学的特性,使得前端开发更加便捷和高效。同时,Vue.js的组件系统和生态系统(如Vuex状态管理、VueRouter路由管理等)也极大地提升了开发体验和应用性能。后端:基于SpringBoot框架开发,Spring......
  • springboot3+快速集成jwt指南
    首先简单回忆一下思路:登录接口为用户生成一个jwt,jwt存于redis中。在使用后续功能通过web拦截器拦截,先获取校验jwt是否过期,再决定是否放行。后续根据jwt中取出来的信息即可实现简单的鉴权总体来说功能如下:本博客以springboot3+为例,使用jjwt0.12.3<dependency>......
  • SpringBoot 插件化开发模式
    一、前言unsetunset1.1使用插件的好处1.1.1模块解耦实现服务模块之间解耦的方式有很多,但是插件来说,其解耦的程度似乎更高,而且更灵活,可定制化、个性化更好。举例来说,代码中可以使用设计模式来选择使用哪种方式发送短信给下单完成的客户,问题是各个短信服务商并不一定能保证......
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论
    文章目录【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论和实操14.1选择题在H3C设备上配置OSPF时,以下哪个命令用于启动OSPF进程?A.[H3C]ospfenableB.[H3C]ospf1C.[H3C]ospfstartD.[H3C]ospfprocessOSPF区域0......
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论
    文章目录14.1选择题解题思路和参考答案14.2理论题解题思路和参考答案14.3实操题解题思路和参考答案思科(Cisco)设备华为(Huawei)设备小米/锐捷(或其他支持标准CLI命令的设备)通过网络管理工具注意事项【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章o......
  • 【开源免费】基于SpringBoot+Vue.JS在线课程管理系统(JAVA毕业设计)
    本文项目编号T137,文末自助获取源码\color{red}{T137,文末自助获取源码}......