本文介绍如何在 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 备案 。
步骤一:下载 SSL 证书
-
登录 数字证书管理服务控制台 。
-
在左侧导航栏,选择 。
-
在 SSL 证书管理 页面,定位到目标证书,在 操作 列,单击 更多 ,然后选择 下载 页签。
-
在 服务器类型 为 JKS 的 操作 列,单击 下载 。
说明Spring Boot 支持配置 PFX 和 JKS 格式的证书,本文以 JKS 格式证书为例介绍。如果您需要配置 PFX 格式的证书,请下载对应格式的证书。
-
解压缩已下载的 SSL 证书压缩包。
根据您在提交证书申请时选择的 CSR 生成方式,解压缩获得的文件不同,具体如下表所示。
CSR 生成方式
证书压缩包包含的文件
系统生成 或 选择已有的 CSR
-
证书文件(JKS 格式): 默认以 证书 ID_证书绑定域名 命名。
-
密码文件(TXT 格式): 默认以 证书格式-password 命名 。
重要每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。
手动填写
-
如果您填写的是通过数字证书管理服务控制台创建的 CSR,下载后包含的证书文件与 系统生成 的一致。
-
如果您填写的不是通过数字证书管理服务控制台创建的 CSR,下载后只包括证书文件(PEM 格式),不包含证书密码或私钥文件。您可以通过证书工具,将证书文件和您持有的证书密码或私钥文件转换成所需格式。 转换证书格式的具体操作,请参见 证书格式转换 。
-
步骤二:在 Spring Boot 安装 SSL 证书
-
将解压后的证书文件和密码文件上传到 Spring Boot 项目的根目录
src/main/resources/
。说明如果您修改过 Spring Boot 项目的目录,您需要将证书文件和密码文件拷贝到与配置文件
application.properties
或application.yml
相同的目录下。您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如 PuTTY、Xshell 或 WinSCP 等。如果您使用的是阿里云 云服务器 ECS ,上传文件具体操作,请参见 使用远程桌面或 Windows APP 向 Windows 实例传输文件 或 上传文件到 Linux 云服务器 。
-
按照以下示例和说明配置
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。
-
-
进入 Spring Boot 项目根目录,执行以下命令重启 Spring Boot 项目。
-
Maven
mvn spring-boot:run
-
Gradle
gradle bootrun
-
步骤三:验证 SSL 证书是否安装成功
证书安装完成后,您可通过访问证书绑定的域名验证该证书是否安装成功。
https://yourdomain #需要将yourdomain替换成证书绑定的域名。
如果网页地址栏出现小锁标志,表示证书已经安装成功。