在 Spring-Boot 中为单个域配置多个 SSL 证书
Configure multiple SSL certificates for a single domain in Spring-Boot
一年前,我为 wxyz.com
域购买了 SSL 证书。
经过一些研究,我创建了一个 sslKeyStore.p12
并在其中添加了带有 Alias=wxyz
的证书。
然后我将该密钥库添加到我的项目的根目录中。
我还使用以下变量配置了我的 Spring-Boot 应用程序:
server.port=443
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=myPass
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=wxyz
现在一年后我的证书很快就会过期,所以我又买了一个证书并将新证书添加到密钥库 Alias=wxyz2
。
但问题是:如何配置我的 Spring-Boot 应用程序以便它同时使用两个证书?
在我的配置文件中,我只能定义一个server.ssl.keyAlias
是否可以同时定义以下两个变量?
server.ssl.keyAlias=wxyz
server.ssl.keyAlias=wxyz2
如有任何帮助,我们将不胜感激。
你想要实现的是设计上不可能实现的。这不是 SSL 旨在工作的方式 - 您不能同时使用两个密钥签署 HTTP 响应。
我在这里看到的最佳选择是 - 正如安德烈亚斯在评论中提到的那样 - 部署一个接受两个证书的客户端应用程序,并更改您的服务器以在旧证书过期当天使用新证书。当某些客户端那天没有更新时,您只能在将来实现更好的软件设计;)
对于未来,您应该考虑切换到默认情况下被广泛接受并且不依赖专有 SSL 证书的 SSL 基础结构。看看 Let‘s Encrypt,它免费颁发证书,您今天会遇到的大多数平台都接受这些证书。
一年前,我为 wxyz.com
域购买了 SSL 证书。
经过一些研究,我创建了一个 sslKeyStore.p12
并在其中添加了带有 Alias=wxyz
的证书。
然后我将该密钥库添加到我的项目的根目录中。
我还使用以下变量配置了我的 Spring-Boot 应用程序:
server.port=443
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=myPass
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=wxyz
现在一年后我的证书很快就会过期,所以我又买了一个证书并将新证书添加到密钥库 Alias=wxyz2
。
但问题是:如何配置我的 Spring-Boot 应用程序以便它同时使用两个证书?
在我的配置文件中,我只能定义一个server.ssl.keyAlias
是否可以同时定义以下两个变量?
server.ssl.keyAlias=wxyz
server.ssl.keyAlias=wxyz2
如有任何帮助,我们将不胜感激。
你想要实现的是设计上不可能实现的。这不是 SSL 旨在工作的方式 - 您不能同时使用两个密钥签署 HTTP 响应。
我在这里看到的最佳选择是 - 正如安德烈亚斯在评论中提到的那样 - 部署一个接受两个证书的客户端应用程序,并更改您的服务器以在旧证书过期当天使用新证书。当某些客户端那天没有更新时,您只能在将来实现更好的软件设计;)
对于未来,您应该考虑切换到默认情况下被广泛接受并且不依赖专有 SSL 证书的 SSL 基础结构。看看 Let‘s Encrypt,它免费颁发证书,您今天会遇到的大多数平台都接受这些证书。