李成笔记网

专注域名、站长SEO知识分享与实战技巧

Spring Boot 3 指南 四、WebFlux(8)为反应式容器配置SSL

问题

你希望你的应用程序可以通过HTTPS访问(或代替HTTP)。

解决方案

获取一个证书,将其放入密钥库中,并使用server.ssl属性来配置密钥库。然后

Spring Boot将自动配置服务器仅通过HTTPS访问。

它是如何工作的

使用server.ssl.keystore(及相关属性),你可以配置嵌入式容器仅接受HTTPS连接。

在配置SSL之前,你需要有一个证书来保护你的应用程序。通常,你会希望从证书颁

发机构如Verisign或Let's Encrypt获取证书。然而,出于开发目的,你可以使用自签名

证书(参见“创建自签名证书”部分)。

创建自签名证书

Java附带了一个名为keytool的工具,可以用来生成证书等。参见列表4-32。

此命令将指示keytool使用RSA算法生成一个密钥,并将其放置在名为sb3-recipes.pfx的密钥库中,别名为sb3-recipes,有效期为3,600天。运行命令时,它会提出一些问题并相应地回答(或留空)。之后,将有一个名为sb3-recipes.pfx的文件,其中包含用密码保护的证书。

将此文件放在src/main/resources文件夹中,以便它作为应用程序的一部分被打包,并且Spring Boot可以轻松访问它。

使用自签名证书将在浏览器中产生一个警告,提示网站不安全或未受保护。

配置Spring Boot使用密钥库

Spring Boot需要知道密钥库才能配置嵌入式容器。为此,首先创建一个所谓的SSL包,并使用server.ssl.bundle属性将其与服务器链接。

为此,请使用server.ssl.keystore属性。您还需要指定密钥库的类型(pkcs12)和密码。参见列表4-33。


这些SSL属性将创建一个名为server的SSL包。它是一个JKS类型。为了传递别名(用于创建证书),使用key.alias属性,对于密码则使用key.password属性。此外,我们需要链接到实际的证书,该证书位于sb3-recipes.pfx文件中。为此,使用keystore.location属性,因为这个文件是受密码保护的。我们需要指定keystore.password属性,最后还需要指定证书的类型。

现在,当通过HTTPS访问服务器时,由于使用的是自签名证书,你将会收到一个警告。当使用官方证书时,显然你不会收到这个警告。参见图4-9。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言