引言
为了保护敏感数据免受网络攻击,在 Web 应用中使用 HTTPS 是必不可少的。HTTPS 提供了数据传输的加密,确保数据在客户端和服务器之间传输时的安全性。Spring Security 提供了简单的配置方式来实现 HTTPS。本文将详细介绍如何在 Spring Boot 项目中配置 HTTPS,并集成 Spring Security 以确保所有通信通过 HTTPS 进行。
前提条件
在开始之前,请确保你已经有一个 Spring Boot 项目,并且安装了 Java Development Kit (JDK) 和 Apache Maven。如果还没有,可以通过 Spring Initializr 快速生成一个基本的 Spring Boot 项目。
创建自签名证书
在配置 HTTPS 之前,你需要一个 SSL 证书。对于开发和测试目的,可以使用 Java 的 keytool
工具生成一个自签名证书。
运行以下命令生成证书:
keytool -genkeypair -alias my-ssl-cert -keyalg RSA -keysize 2048 -validity 365 -keystore keystore.p12 -storetype PKCS12 -dname "CN=localhost" -storepass changeit -keypass changeit
这将生成一个名为 keystore.p12
的密钥库文件,包含一个有效期为 365 天的自签名证书。
配置 Spring Boot 使用 HTTPS
在 Spring Boot 项目中配置 HTTPS 非常简单。只需在 application.properties
文件中添加以下配置:
server.port=8443
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=changeit
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=my-ssl-cert
将 server.por