Spring Boot 集成SSL证书配置详解
在 Spring Boot 应用程序中添加 SSL 证书以进行 HTTPS 访问,这需要配置应用程序启动类中的@EnableWebSecurity
注解,并设置自定义的WebSecurityConfigurerAdapter
类来加载和使用 SSL 证书,确保正确配置了应用程序的上下文路径,并通过系统属性或环境变量提供了正确的 SSL 证书文件位置,完成这些步骤后,应用将能够处理 HTTPS 请求并加密数据传输。
我们需要在Spring Boot项目中添加依赖,请参考下面的pom.xml
文件:
<dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Tomcat for SSL support --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!-- Spring Boot Starter Tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- Spring Boot Starter Security --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <!-- SSL dependencies --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> </dependencies>
在Spring Boot项目的src/main/resources/application.properties
中添加如下配置以启用SSL:
# Enable SSL in the application server.port=8443 server.ssl.key-store=classpath:/path/to/my.keystore.jks server.ssl.key-store-password=secret server.ssl.key-password=secret server.ssl.key-alias=myKeyAlias server.ssl.trust-store=classpath:/path/to/my.truststore.jks server.ssl.trust-store-password=secret
你需要生成一个自签名的证书或者从外部服务获取SSL证书,这里我们将使用一个简单的自签名证书作为示例:
-
使用Java的
keytool
命令生成Keystore文件:keytool -genkeypair -alias myKeyAlias -keyalg RSA -dname "CN=localhost" -keysize 2048 -keystore /path/to/my.keystore.jks -storepass secret
-
将生成的
my.keystore.jks
文件移动到/path/to/
目录下。
你需要创建一个信任链文件(my.truststore.jks
),你可以通过导入外部的证书来构建信任链。
keytool -importcert -file /path/to/server.crt -alias server -keystore /path/to/my.truststore.jks -storepass secret
检查my.truststore.jks
中的所有证书是否正确导入。
测试SSL连接
打开浏览器访问你的Spring Boot应用的HTTPS地址(https://localhost:8443/your-app-endpoint
),查看是否能够成功连接到服务器并显示正确的页面。
如果一切设置正确,你应该能够在浏览器中看到你的Spring Boot应用,如果你遇到任何问题,建议查阅相关文档或者联系技术支持。
扫描二维码推送至手机访问。
声明:本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。