SpringBoot实现https协议

本文讲述了https与http的区别,包括https的安全性、SSL证书的申请流程(如腾讯云、阿里云或本地Java工具),以及如何在SpringBoot项目中集成自签名的SSL证书以实现HTTPS访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、https与http的区别

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

2、申请ssl证书

申请ssl证书可以在腾讯云或者阿里云上免费申请,也可以使用java提供的工具本地申请,但本地申请的证书是不受信任的。
本地使用命令行,切换到/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home目录下,使用命令

keytool -genkey -alias demo -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore demo.p12 -validity 5000

windows可以使用

keytool.exe -genkey -alias demo -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore demo.p12 -validity 3650

解释:

-genkey: 生成SSL证书
-alias: 证书别名 后面配置要用
-storetype: 秘钥仓库类型
-keyalg: 生成证书算法
-keysize: 证书大小
-keystore: 生成证书保存路径
-validity: 证书有效期

执行命令后,需要设置密码,密码最小长度为六位,密码是不可见,后续输入一些问题答案,
直到[否]的时候输入y,即可生成证书。
在这里插入图片描述

3、springboot项目集成

回到springboot项目,将生成的证书复制一份到resources目录下,在配置文件中添加如下配置,

# SSL
server.ssl.key-store=classpath:demo.p12  # 引入证书
server.ssl.key-alias=demo # 证书别名
server.ssl.key-store-password=123456 # 密钥口令

接下来启动项目就可以使用https访问了
注意:https默认是443端口,http是80端口

### 如何在 Spring Boot 和 Vue 项目中配置和实现 HTTPS #### 配置 Spring Boot 支持 HTTPS 为了使 Spring Boot 应用支持 HTTPS,需要创建或获取 SSL/TLS 证书并将其配置到应用程序中。 1. **生成自签名证书** 可以使用 Java 自带工具 keytool 来生成自签名证书: ```bash keytool -genkeypair -alias myapp -keyalg RSA -keystore keystore.jks -storepass secret -validity 3650 ``` 这条命令将会在一个名为 `keystore.jks` 的文件里生成一个有效期十年的私钥对[^1]。 2. **修改 application.properties 或者 application.yml 文件来启用 HTTPS 并指定密钥库路径以及密码**: 对于 properties 格式的配置如下所示: ```properties server.port=8443 server.ssl.key-store=classpath:keystore.jks server.ssl.key-password=secret server.ssl.keyStorePassword=secret server.ssl.keyAlias=myapp ``` YAML 格式则为: ```yaml server: port: 8443 ssl: key-store: classpath:keystore.jks key-password: "secret" keyStorePassword: "secret" keyAlias: myapp ``` 以上设置将启动服务器监听于默认 HTTPS 端口 (8443),并且指定了用于加密通信的秘密存储位置及其访问凭证。 #### 修改 Vue.js 开发环境以适应 HTTPS 请求 为了让前端能够正确地向启用了 HTTPS 协议的服务端发起请求,在开发阶段可能还需要调整 vue.config.js 中的相关选项。具体来说就是告诉 Webpack Dev Server 使用 https 方案,并提供必要的认证资料。 编辑项目的根目录下的 `vue.config.js` 文件(如果不存在就新建),加入以下内容: ```javascript module.exports = { devServer: { https: true, key: fs.readFileSync('/path/to/server-key.pem'), cert: fs.readFileSync('/path/to/server-cert.pem') } }; ``` 这里假设已经拥有了 PEM 编码格式的公钥 (`server-cert.pem`) 及其对应的私钥 (`server-key.pem`) 文件;如果没有的话也可以继续利用之前提到的方法通过 OpenSSL 工具集自行制作一套临时测试用途的证书组合[^2]。 完成上述更改之后重启两个服务即可让整个系统工作在安全模式下。需要注意的是生产环境中应当采用由受信任 CA 授予的真实有效的数字证书而非自制样本,从而确保客户端浏览器不会弹出警告提示影响用户体验甚至阻止页面加载过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值