spring boot宝塔配置https
时间: 2025-01-25 21:19:08 浏览: 65
### 配置Spring Boot应用在宝塔面板上使用HTTPS
#### 准备SSL证书
为了使Spring Boot应用程序能够通过HTTPS协议安全地提供服务,首先需要准备SSL/TLS证书。可以通过Let's Encrypt免费获得SSL证书,在宝塔面板中有专门的功能模块支持一键申请此类型的证书。
#### 安装并配置Nginx反向代理服务器
通常不会直接让Java应用程序暴露于互联网下处理HTTP请求,而是借助Web服务器如Nginx作为前端来接收用户的访问请求并将它们转发给后端的应用程序。因此,在宝塔面板安装Nginx是非常必要的。创建一个新的站点,并将该站点指向放置Spring Boot打包成的WAR或JAR文件所在的目录[^3]。
对于已经存在的网站可以在其设置里找到“ SSL”选项卡,点击“发行”,按照提示完成域名验证过程以获取新的SSL证书;如果是在新建站点,则可以直接勾选启用SSL功能的同时自动完成证书签发流程。
#### 修改Spring Boot项目的application.properties(application.yml)
为了让Spring Boot知道它应该监听哪个端口以及如何响应来自外部网络经过加密传输过来的数据流,需编辑`src/main/resources/application.properties`(如果是YAML格式则是`application.yml`) 文件加入如下内容:
```properties
server.port=8081 # 或者其他未被占用的服务端口号
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:yourdomain.p12
server.ssl.key-store-password=YourStorePassword
server.ssl.key-alias=tomcat
```
上述配置项指定了密钥库的位置、类型及其对应的密码还有别名等信息,其中`.p12`文件即是从CA机构下载下来的私钥与公钥组合而成的一个二进制容器形式保存着完整的认证链路结构[^1]。
不过考虑到实际生产环境中更倾向于利用专业的负载均衡器或者反向代理来进行统一管理而非由各个微服务自行开启HTTPS连接,所以在大多数情况下只需确保内部通信采用非公开的方式即可满足需求——也就是说可以让Spring Boot继续沿用默认的HTTP模式运行,而把所有的HTTPS终止点都交给前置的Nginx去做就可以了。
#### Nginx配置样例
下面给出一段典型的Nginx配置片段用来实现从浏览器发出的所有针对特定主机名称下的HTTP GET/POST... 请求都能够正确无误地转交给后台正在等待命令指示的工作线程池里的某个成员去执行具体任务逻辑:
```nginx
upstream backend {
server localhost:8081;
}
server {
listen 443 ssl http2;
server_name your.domain.com;
ssl_certificate /www/server/panel/vhost/cert/your.domain.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/your.domain.com/privkey.pem;
location / {
proxy_pass http://backend/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
这段脚本定义了一个名为`backend` 的上游服务器列表,里面只有一个条目就是本地回环地址加上刚才设定好的Spring Boot HTTP监听端口;接着声明当前虚拟主机只接受TLS握手成功的TCP连接尝试并且指定好相应的PEM编码格式的X.509 v3版本数字凭证路径以便建立会话时出示身份证明材料供对方校验真伪合法性[^2]。
最后要注意的是每当修改完任何地方涉及到环境变量变更或是新增加了某些依赖关系之后都应该重启一次整个工程体系才能生效新改动所带来的影响效果。
阅读全文
相关推荐


















