当前位置:首页 > 行业资讯 > SSL证书 > 正文内容

Spring Boot 配置 SSL 证书详解 实现 HTTPS 安全通信

2025-09-12SSL证书309

海外云服务器 40个地区可选            亚太云服务器 香港 日本 韩国

云虚拟主机 个人和企业网站的理想选择            俄罗斯电商外贸虚拟主机 赠送SSL证书

美国云虚拟主机 助力出海企业低成本上云             WAF网站防火墙 为您的业务网站保驾护航


在现代 Web 应用中,安全通信已成为不可或缺的一部分,随着网络安全威胁的日益增加,HTTPS(HyperText Transfer Protocol Secure)协议通过 SSL/TLS 协议对数据进行加密传输,有效防止了数据在传输过程中被窃取或篡改,保障了用户隐私和系统安全。 Spring Boot 作为一个广泛使用的快速开发框架,内置了对 HTTPS 的良好支持,使得开发者可以便捷地为应用配置 SSL 证书,从而轻松实现 HTTPS 安全访问,本文将详细介绍如何在 Spring Boot 项目中配置 SSL 证书,涵盖开发测试和生产环境两种场景,并提供常见问题的解决方案,帮助开发者快速掌握 HTTPS 的配置技巧。

在开始配置 SSL 之前,我们需要准备以下几项内容:

  1. SSL 证书文件

    • 可以是用于开发测试的自签名证书,也可以是权威机构(如 Let’s Encrypt、阿里云、腾讯云等)颁发的正式证书
    • 常见格式包括 .jks(Java KeyStore)、.p12(PKCS#12)以及 .crt/.key(PEM 格式)等。
  2. Java 开发环境

    Spring Boot 使用 Java 的 KeyStore 来管理 SSL 证书,因此需要安装 JDK(推荐使用 JDK 8 及以上版本)。

  3. Spring Boot 项目

    • 可以通过 Spring Initializr 快速创建一个 Spring Boot 项目,确保项目中包含 Web 依赖。

生成自签名证书(用于开发测试)

如果你只是在本地环境中测试 HTTPS 功能,可以使用 Java 自带的 keytool 工具生成一个自签名证书。

生成命令如下:

keytool -genkeypair -alias myssl \
  -keyalg RSA -keysize 2048 \
  -storetype PKCS12 \
  -keystore myssl.p12 \
  -validity 3650

执行上述命令后,系统会提示你输入以下信息:

  • 密码(如:123456
  • 姓名、组织单位、组织名称等
  • 确认信息无误后,将生成一个名为 mySSL.p12 的密钥库文件。

该证书的有效期为 10 年,适合开发测试使用。


配置 Spring Boot 项目启用 HTTPS

将证书文件放入资源目录

将生成的 myssl.p12 文件复制到 Spring Boot 项目的 src/main/resources 目录下,以便在运行时加载。

配置 application.yml 或 application.properties

application.yml 中添加以下配置:

server:
  port: 8443
  ssl:
    key-store: classpath:myssl.p12
    key-store-password: 123456
    key-store-type: PKCS12
    key-alias: myssl

或者在 application.properties 中配置:

server.port=8443
server.ssl.key-store=classpath:myssl.p12
server.ssl.key-store-password=123456
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=myssl

启动项目并测试访问

启动 Spring Boot 项目后,访问 https://localhost:8443,浏览器会提示“证书不受信任”,这是由于使用的是自签名证书,选择继续访问即可正常测试 HTTPS 接口。


使用正式证书(由 CA 颁发)

如果你使用的是由权威机构颁发的正式 SSL 证书(如从 Let’s Encrypt、阿里云、腾讯云等获取),通常需要将证书转换为 Java 支持的格式(如 .p12.jks)。

将 PEM 格式证书转换为 PKCS#12

假设你有以下证书文件:

  • domain.crt:网站证书
  • domain.key:私钥文件
  • ca.crt:CA 中间证书

可以使用 OpenSSL 工具合并并转换为 PKCS12 格式:

openssl pkcs12 -export \
  -in domain.crt \
  -inkey domain.key \
  -out domain.p12 \
  -name mydomain \
  -CAfile ca.crt \
  -caname root

执行完成后,会生成一个名为 domain.p12 的密钥库文件。

配置 Spring Boot 启用正式证书

domain.p12 文件放入 src/main/resources 目录,并在 application.yml 中添加如下配置:

server:
  port: 443
  ssl:
    key-store: classpath:domain.p12
    key-store-password: your_password
    key-store-type: PKCS12
    key-alias: mydomain

注意:正式证书应部署在 443 端口,这是 HTTPS 的标准端口。

部署应用并绑定域名

将应用部署到服务器后,配置域名解析,通过 HTTPS 协议访问即可实现安全通信。


同时支持 HTTP 和 HTTPS(可选)

在某些场景中,我们可能希望同时支持 HTTP 和 HTTPS 协议,Spring Boot 可以通过编程方式实现双协议监听。

示例配置(Java 配置类):

@Configuration
public class HttpConfig {
    @Bean
    public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
        return factory -> factory.setPort(8080); // HTTP 默认端口
    }
    @Bean
    public WebServerFactoryCustomizer<EmbeddedWebApplicationContext> httpsWebServerFactoryCustomizer() {
        return context -> {
            context.addWebServerFactoryCustomizer(factory -> {
                factory.setPort(443);
                Ssl ssl = new Ssl();
                ssl.setKeyStore("classpath:domain.p12");
                ssl.setKeyStorePassword("your_password");
                ssl.setKeyStoreType("PKCS12");
                ssl.setKeyAlias("mydomain");
                factory.setSsl(ssl);
            });
        };
    }
}

注意:Spring Boot 2.x 之后使用 WebServerFactoryCustomizer 替代旧版本的 EmbeddedServletContainerCustomizer,请根据你的 Spring Boot 版本进行调整。


常见问题及解决方案

证书未生效,仍使用 HTTP 访问?

  • 检查端口配置:是否使用 HTTPS 端口(如 8443 或 443)。
  • 检查配置文件拼写:确保 server.ssl.* 配置项无误。
  • 确保证书路径正确:确保证书文件在 src/main/resources 下,并使用 classpath: 引用。

证书不被信任?

  • 自签名证书:需手动将证书添加为受信任的根证书。
  • 正式证书:确保证书链完整,中间证书已正确配置。

启动时报错:java.io.IOException: Keystore was tampered with, or password was incorrect

  • 检查密码是否正确:确保配置文件中密码与生成证书时设置的一致。
  • 检查证书文件是否损坏:尝试重新生成或重新下载证书文件。

在 Spring Boot 中配置 SSL 证书是构建安全 Web 应用的关键步骤,无论是用于开发测试的自签名证书,还是用于生产环境的正式证书,Spring Boot 都提供了良好的支持,开发者只需通过简单的配置即可启用 HTTPS 协议。

Spring Boot 还支持灵活的配置方式,满足不同部署场景的需求,掌握这些配置技巧,不仅能提升应用的安全性,也能增强开发者的工程实践能力。


参考文献

字数统计:约 1500 字

如需进一步扩展,可结合 HTTPS 强制跳转、HTTP/2 配置、证书自动续签(如 ACME 客户端)等内容,进行深入讲解,欢迎继续关注相关内容更新!

扫描二维码推送至手机访问。

版权声明:本文由特网科技发布,如需转载请注明出处。

本文链接:https://www.56dr.com/mation/76225.html

分享给朋友:

“Spring Boot 配置 SSL 证书详解 实现 HTTPS 安全通信” 的相关文章

国内注册域名能否在国外服务器建站

国内注册域名可以在国外服务器建站,但需要考虑法律和安全因素。在互联网的世界里,域名和服务器是构建网站的基础,对于许多想要在网上建立个人博客、企业网站或在线商店的创业者来说,选择合适的域名和服务器至关重要,许多人可能对如何将国内注册域名映射到国外服务器存在疑问,本文将探讨这个问题,并提供一些实用建议。...

海外服务器搭建成本分析

搭建海外服务器通常涉及多个因素,包括服务器提供商、地理位置选择、网络带宽、操作系统和软件配置等。以下是一些关键点:,,### 1. 服务器提供商,不同提供商的价格差异较大,包括价格、性能、技术支持等方面。选择一个信誉良好且价格合理的提供商对于降低成本至关重要。,,### 2. 地理位置,考虑服务器所...

数据安全,信息保护的必选之路

在数字时代,保护个人和组织数据安全已成为全球共识。确保信息的完整性和隐私性是关键措施。以下是几种保障信息安全的必要选择:,,1. **使用强密码**:定期更换密码,并避免使用过于简单或重复的密码。,,2. **启用两步验证**:为重要账户设置双因素认证,增加登录的安全性。,,3. **定期更新软件和...

SSL 证书价格分析,一年.ssl证书费用

一年SSL证书的价格因品牌、类型和选择的不同而有所差异。企业级SSL证书价格在每年数百到数千元不等。家庭用户可以选择免费或低成本的SSL证书,价格相对较低。SSL(安全套接字层)证书是用于保护数据传输安全的重要工具,对于个人和小型企业来说,选择合适的 SSL 证书可以极大地提高网站的安全性,避免数据...

企业如何购买SSL证书?

选择合适的SSL证书是确保网站安全的重要步骤。确定您的网站类型和需求,例如是否需要支持HTTPS、域名保护或安全通信等。比较不同品牌的SSL证书,了解其功能和价格,并考虑品牌信誉、客户评价和售后服务。与供应商进行沟通,确认订单细节和支付方式,完成整个购买过程。打造安全的网络环境——企业如何选购和使用...

SSL证书对网站安全的重要性

SSL证书是确保网络连接安全的关键。在电子商务、金融交易和在线服务中,证书可以防止未经授权的数据访问或篡改,保护用户数据的安全。购买SSL证书并不总是必要,尤其是在较小规模的应用场景中。对于大多数企业来说,免费或低成本的SSL证书可能就足够了,尤其是在没有特别需求的情况下。SSL(安全套接字层)是一...