【问题标题】:Add SSL keystore file to java trusted store for HTTP Client request on PCF (Cloud Foundry)将 SSL 密钥库文件添加到 Java 受信任的存储库,以用于 PCF(Cloud Foundry)上的 HTTP 客户端请求
【发布时间】:2016-09-01 05:44:31
【问题描述】:

在我的 Spring Boot 应用程序中,我提出了一个 https(安全)请求。为此,我需要将流动参数作为 JVM 参数传递。

javax.net.ssl.trustStore javax.net.ssl.trustStorePassword

例如:

-Djavax.net.ssl.trustStore=~/home/dinusha/keystore.jks -Djavax.net.ssl.trustStorePassword=pass

在 PCF (Cloud Foundry) 中,我无法将 keystore.jks 文件复制到 PCF。那么如何在 PCF 上传递这些值

【问题讨论】:

    标签: spring-boot cloud-foundry


    【解决方案1】:

    您必须将 keystore.jks 文件与应用程序捆绑在一起。请找到下面的步骤。

    1. 将您的 keystore.jks 文件放入您的应用程序资源 (src/main/resources) 文件夹中。
    2. application.properties中添加keystore.jks路径和密码

      client.ssl.trust-store = keystore.jks
      client.ssl.trust-password = 通过

    3. 现在从 application.properties 中获取属性值

      @value("${client.ssl.trust-password}")
      私有字符串 trustPassword

      @value("${client.ssl.trust-store}")
      私有字符串 trustStore

    4. 现在初始化流动属性

      System.setProperty("javax.net.ssl.trustStore", trustStore); System.setProperty("javax.net.ssl.trustStorePassword",trustPassword);

    5. 最终推送到 PCF

    【讨论】:

    • 对我来说是:在 jar 中的 /resources 下时,trustStorFile 似乎无法访问,只需将其文件名设置为 javax.net.ssl.trustStore 的值,而将其放在 jar 之外时它可以工作相对于当前执行上下文的路径。(System.getProperty("user.dir"))
    【解决方案2】:

    最好引用和存储 Keystore.jks 和 trustStrore.jks 是为了让您的应用程序(WAR 、 JAR 、 EAR)外部环境。

    是的,对于请求,您不需要 ketstore,而是需要 truststore.jks。

    您可以将其存储在 GIT 或其他 Repo 位置,并通过 CloundFoundry 从您的应用程序指向该位置。

    将您的 keystore.jks 文件放入您的应用程序资源(src/main/resources)文件夹中。

    Add the Truststore.jks path and it's password in the application.properties
    
    *client.ssl.trust-store = keystore.jks
    
    client.ssl.trust-password = pass*
    

    现在从 application.properties 中获取属性值

    @value("${client.ssl.trust-password}")
    private String trustPassword
    
    @value("${client.ssl.trust-store}")
    private String trustStore
    
    
        Put the location with protocol details in manifest file like below :
    
        env:
          loglevel: DEBUG,APP
          JAVA_OPTS: -XX:+UseConcMarkSweepGC
          TRUSTSTORE_LOCATION: https://XXXX:yyyyyy@svninst1.uk.fid-intl.com:18080/svn/TAPP100367DC_API/trunk/dc-Member-Api/dc-Member-Api-web/src/main/resources/cacerts.jks
    
    and get it like:
    
    @value("${client.ssl.trust-password}")
    private String trustPassword
    
    @value("${TRUSTSTORE_LOCATION}")
    private String trustStore
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多