Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在为SpringBoot应用程序指定密钥库时,javax.net.ssl.keyStore和server.ssl.key-store属性之间有什么区别_Java_Spring Boot_Keystore_Jks - Fatal编程技术网

在为SpringBoot应用程序指定密钥库时,javax.net.ssl.keyStore和server.ssl.key-store属性之间有什么区别

在为SpringBoot应用程序指定密钥库时,javax.net.ssl.keyStore和server.ssl.key-store属性之间有什么区别,java,spring-boot,keystore,jks,Java,Spring Boot,Keystore,Jks,我可以使用这些属性中的任何一个来指定密钥存储库—特定于Java的javax.net.ssl.keystore或特定于spring boot的server.ssl.key-store。有什么不同吗?我想使用密钥库为我的应用程序提供https服务,以及与一些REST服务的相互客户端身份验证 如果密钥库没有指定为属性或jvm参数,而是在启动时使用自定义代码读取,那么可以使用https为SpringBoot应用程序提供服务吗?或者,如果应用程序必须使用https提供服务,那么密钥库规范必须在这之前出现吗

我可以使用这些属性中的任何一个来指定密钥存储库—特定于Java的javax.net.ssl.keystore或特定于spring boot的server.ssl.key-store。有什么不同吗?我想使用密钥库为我的应用程序提供https服务,以及与一些REST服务的相互客户端身份验证

  • 如果密钥库没有指定为属性或jvm参数,而是在启动时使用自定义代码读取,那么可以使用https为SpringBoot应用程序提供服务吗?或者,如果应用程序必须使用https提供服务,那么密钥库规范必须在这之前出现吗


  • 这两个属性具有互补作用:

    • javax.net.ssl.keyStore
      是一个系统属性,Java安全提供商使用该属性配置默认的
      SSLContext
      。大多数SSL客户端使用默认的
      SSLContext

      您不需要将此属性作为
      -D
      参数传递给JVM,您可以在应用程序启动的早期以编程方式设置它,但我建议您不要这样做:因为您的应用程序可能不是JVM中的唯一应用程序(例如,您将其作为WAR归档运行),您将影响其他应用程序的行为。改用非默认的
      SSLContext

    • server.ssl.keyStore
      是一个Spring属性,用于配置嵌入式servlet容器的server套接字。它可以来自于

      理论上,servlet容器可以使用默认的
      SSLContext
      ,并从默认的
      KeyManager
      (它从通过
      javax.net.ssl.keystore
      指定的密钥库加载其密钥)检索其证书,但我不知道有哪个servlet容器会真正这样做

      通常,用作SSL客户端的证书与用作SSL服务器的证书不同


    有没有想过我也在想同样的事情