在Spring Boot应用安装SSL证书

在Spring Boot应用安装SSL证书

本文介绍如何在 Spring Boot 应用中配置 SSL 证书,具体包括下载和上传证书文件,在 Spring Boot 应用配置证书文件、证书链和证书密码等参数,以及安装证书后结果的验证。成功配置 SSL 证书后,您将能够通过 HTTPS 加密通道安全访问 Spring Boot 应用,确保数据传输的安全性。

前提条件

  • 已通过数字证书管理服务控制台签发证书。具体操作,请参见 购买 SSL 证书(额度) 提交证书申请

  • SSL 证书绑定的域名已完成 DNS 解析,即您的域名已正确映射到主机 IP 地址。您可以通过控制台 常用证书工具 中的 DNS 生效验证 ,检测域名 DNS 解析是否生效。具体操作,请参见 DNS 生效验证

  • 已在 Web 服务器开放 443 端口(HTTPS 通信的标准端口)。

    • 如果您使用的是阿里云 ECS 服务器,请确保已经在安全组规则入方向添加 TCP 443 端口。具体操作,请参见 管理安全组规则

    • 如果您使用的是其他云服务商或本地服务器,请确保在防火墙或安全组中开启 TCP 443 端口。

  • 如果待部署 SSL 证书的网站计划部署在中国内地,则您需要按照工信部的相关要求完成 ICP 备案,否则将影响网站的正常访问。更多信息,请参见 什么是 ICP 备案

说明

如果您证书的加密算法为 SM2(国密算法),该证书无法配置在 Spring Boot 上。您需要吊销该证书并重新申请加密算法为 RSA ECC 的证书。关于吊销证书和申请证书的操作,请参见 吊销 SSL 证书 提交证书申请

步骤一:下载 SSL 证书

  1. 登录 数字证书管理服务控制台

  2. 在左侧导航栏,选择 证书管理 > SSL 证书管理

  3. SSL 证书管理 页面,定位到目标证书,在 操作 列,单击 更多 ,然后选择 下载 页签。

  4. 服务器类型 JKS 操作 列,单击 下载

    说明

    Spring Boot 支持配置 PFX JKS 格式的证书,本文以 JKS 格式证书为例介绍。如果您需要配置 PFX 格式的证书,请下载对应格式的证书。

    image.png

  5. 解压缩已下载的 SSL 证书压缩包。

    根据您在提交证书申请时选择的 CSR 生成方式,解压缩获得的文件不同,具体如下表所示。 CSR

    CSR 生成方式

    证书压缩包包含的文件

    系统生成 选择已有的 CSR

    • 证书文件(JKS 格式): 默认以 证书 ID_证书绑定域名 命名。

    • 密码文件(TXT 格式): 默认以 证书格式-password 命名

      重要

      每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。

    手动填写

    • 如果您填写的是通过数字证书管理服务控制台创建的 CSR,下载后包含的证书文件与 系统生成 的一致。

    • 如果您填写的不是通过数字证书管理服务控制台创建的 CSR,下载后只包括证书文件(PEM 格式),不包含证书密码或私钥文件。您可以通过证书工具,将证书文件和您持有的证书密码或私钥文件转换成所需格式。 转换证书格式的具体操作,请参见 证书格式转换

步骤二:在 Spring Boot 安装 SSL 证书

  1. 将解压后的证书文件和密码文件上传到 Spring Boot 项目的根目录 src/main/resources/

    说明

    如果您修改过 Spring Boot 项目的目录,您需要将证书文件和密码文件拷贝到与配置文件 application.properties application.yml 相同的目录下。

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如 PuTTY、Xshell WinSCP 等。如果您使用的是阿里云 云服务器 ECS ,上传文件具体操作,请参见 使用远程桌面或 Windows APP Windows 实例传输文件 上传文件到 Linux 云服务器

  2. 按照以下示例和说明配置 application.properties application.yml 文件。

    • application.properties

      server.port = 443    #HTTPS协议默认端口号为443,需要使用其他端口时,您可以在此处自定义。
      server.ssl.key-store = classpath:domain_name.jks   #您需要使用实际的证书名称替换domain_name.jks。
      server.ssl.key-store-password = ********    #填写jks-password.txt文件内的密码。
      server.ssl.keyStoreType = JKS #JKS格式证书密钥库类型。PFX格式的证书密钥库类型为PKCS12。
    • application.yml

      server:
        port: 443    #HTTPS协议默认端口号为443,需要使用其他端口时,您可以在此处自定义。
          key-store-password: ********    #填写jks-password.txt文件内的密码。
          key-store-type: JKS #JKS格式证书密钥库类型。PFX格式的证书密钥库类型为PKCS12。
          key-store: classpath:domain_name.jks   #您需要使用实际的证书名称替换domain_name.jks。
  3. 进入 Spring Boot 项目根目录,执行以下命令重启 Spring Boot 项目。

    • Maven

      mvn spring-boot:run
    • Gradle

      gradle bootrun

步骤三:验证 SSL 证书是否安装成功

证书安装完成后,您可通过访问证书绑定的域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

相关文档