Spring Boot 开启https访问(配置SSL证书)

前言:实际工作中为了提高数据传输的安全性,采用HTTPS通讯,简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输,相比http协议安全。SSL证书需要到CA机构申请证书,仅为测试可以使用jdk生成自签证书。

配置步骤如下:

一、JDK生成自签证书,以管理员身份运行CMD窗口

命令:keytool -genkey -alias testhttps -keyalg RSA -keysize 2048 -validity 36500 -keystore  "D:/tmp/ssl/testhttps.keystore"

命令解释:
• -genkey 表示要创建一个新的密钥。 

• -alias 表示 keystore 的别名。 

• -keyalg 表示使用的加密算法是 RSA。

• -keysize 表示密钥的长度.。

• -keystore 表示生成的密钥存放位直。 

• -validity 表示密钥的有效时间,单位为天。

二、在springboot 中项目配置证书

1. 将第一步生成的 testhttps.keystore 文件放入 /resource 目录下(即classpath目录)

2. 在application.yml 配置文件中添加ssl 相关配置

server:
  port: 9090
  servlet:
    context-path: /ssl-service

  ssl:
    key-store: classpath:testhttps.keystore  #类路径下的自签证书
    key-alias: testhttps # 证书别名
    key-store-password: 123456 #证书密码
    key-store-type: JKS # 证书类型
    enabled: true  # 开启证书验证

3. 编写测试接口 

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfo {

    private String name;

    private Integer age;

    private String gender;
}
import com.ssl.demo.entity.UserInfo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @RequestMapping("getUserInfo")
    public UserInfo getUserInfo() {
        UserInfo userInfo = new UserInfo("高富帅", 20, "男");
        return userInfo;
    }

}


三、验证https访问  

  在浏览器输入:https://localhost:9090/ssl-service/getUserInfo

本文章介绍的是浏览器使用https方式访问服务端接口,后续更新三方服务如何通过后台 使用https方式 访问服务端接口。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值