springboot 项目配置https

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

1.准备好 SSL 证书

https://i-blog.csdnimg.cn/img_convert/c11894ac7d7dc517624affb4d72a1efb.png" alt="" />

  • application.yml源文件:
spring:redis:host: 60.204.232.18port: 6379database: 3cloud:nacos:server-addr: 192.168.15.233:8848dubbo:registry:address: nacos://192.168.15.233:8848server:port: 9000address: 0.0.0.0spring:cloud:gateway:routes:- id: api-backenduri: lb://api-backendpredicates: Path=/api/backend/**- id: api-interfaceuri: lb://api-interfacepredicates: Path=/api/interface/**logging:level:org:springframework:cloud:gateway: INFOdubbo:application:name: api-gateway-dubboqosEnable: falseenable-file-cache: falseprotocol:name: dubboport: -1

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

server:port: 9000address: 0.0.0.0ssl:key-store: /www/server/nginx/ssl/60.204.232.18/keystore.p12key-store-password: your_passwordkey-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

https://i-blog.csdnimg.cn/img_convert/3aca2e156e440abf7e33580d5d35fd1d.png" alt="" />

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

http://www.ppmy.cn/ops/151451.html

相关文章

自动驾驶汽车目前面临的最大技术挑战是什么?

1. 感知技术的局限性 恶劣天气和复杂环境:当前的传感器在恶劣天气(如雨、雾、雪)和复杂道路条件下的感知能力仍有待提高。例如,激光雷达在穿透雨雾时的能力有限,易受强光干扰;摄像头在夜间和恶劣天气中的视…

PT2025 单触控双输出 LED 调光IC

1 产品概述 ● PT2025 是一款单键电容式触摸控制 ASIC,支持单通道触摸输入和单路/双路 PWM 输出,可引脚配置4种模式。主要应用于触摸卫浴镜开关盒,具有介质自适应、高抗干扰、宽工作电压范围、灯光无频闪、外围器件少的突出优势。 2 主要特性…

2024最新版JavaScript逆向爬虫教程-------基础篇之Chrome开发者工具学习

目录 一、打开Chrome DevTools的三种方式二、Elements元素面板三、Console控制台面板四、Sources面板五、Network面板六、Application面板七、逆向调试技巧 7.1 善用搜索7.2 查看请求调用堆栈7.3 XHR 请求断点7.4 Console 插桩7.5 堆内存函数调用7.6 复制Console面板输出 工…

@Scope(“prototype“)

Scope("prototype") 是 Spring 框架中用于定义 Bean 作用域的注解之一,它的主要作用是将一个 Bean 定义成 原型作用域(Prototype Scope)。在原型作用域下,每次从 Spring 容器中请求这个 Bean 时,都会创建一个…

opencv笔记1

openCV是什么? 它的全称是Open source Computer Vision Library,开放源代码计算机视觉库。 后面亚博小车有颜色识别并追踪、人脸识别并追踪实践项目。先了解下基础函数使用。 一 图像的读取与展示 1图像的读取 img cv2.imread(yahboom.jpg, 0) 第一个参数是…

SQL刷题快速入门(三)

其他章节: SQL刷题快速入门(一) SQL刷题快速入门(二) 承接前两个章节,本系列第三章节主要讲SQL中where和having的作用和区别、 GROUP BY和ORDER BY作用和区别、表与表之间的连接操作(重点&…

在 macOS 上,用命令行连接 MySQL(/usr/local/mysql/bin/mysql -u root -p)

根据你提供的文件内容,MySQL 的安装路径是 /usr/local/mysql。要直接使用 mysql 命令,你需要找到 mysql 可执行文件的路径。 在 macOS 上,mysql 客户端通常位于 MySQL 安装目录的 bin 子目录中。因此,完整的路径应该是&#xff1…

码云gitee 新建仓库 添加公钥

码云gitee 新建仓库 添加公钥 文章目录 码云gitee 新建仓库 添加公钥新建仓库生成公钥管理个人公钥安全验证 码云这个网站是一个代码托管平台,在国内可以无限制的使用,在这个网站上,也可以搜索到一些github上面的内容。进入这个网站&#xff…