javax和javax的区别是什么。网ssl。密钥库和服务器。ssl。为SpringBoot应用程序指定密钥库时的密钥库属性
我可以使用这两个属性中的任何一个指定密钥库吗?Java特定的javax。网ssl。密钥库或特定于spring引导的服务器。ssl。钥匙店。有什么不同吗?我想使用密钥库为我的应用程序提供https服务,并与一些REST服务进行相互客户端身份验证
如果密钥库没有指定为属性或jvm参数,而是在启动时使用自定义代码读取,那么可以使用https为SpringBoot应用程序提供服务吗?或者,如果应用程序必须使用https提供服务,那么密钥库规范必须在这之前出现吗
# 1 楼答案
这两个属性具有互补作用:
javax.net.ssl.keyStore
是Java安全提供程序用于配置默认SSLContext
的系统属性。大多数SSL客户端使用默认的SSLContext
您不需要将此属性作为
-D
参数传递给JVM,您可以在应用程序启动的早期以编程方式设置它,但我建议您不要这样做:因为您的应用程序可能不是JVM中唯一的应用程序(例如,您将其作为WAR归档运行),您将影响其他应用程序的行为。改用非默认的SSLContext
server.ssl.keyStore
是一个Spring属性,用于配置嵌入式servlet容器的服务器套接字。它可以来自many different sources理论上,servlet容器可以使用默认的
SSLContext
并从默认的KeyManager
检索其证书(它从通过javax.net.ssl.keyStore
指定的密钥库加载其密钥),但我不知道有哪个servlet容器会真正这样做通常,用作SSL客户端的证书与用作SSL服务器的证书不同