JAVA - 使用密钥库对AWS Elastic Beanstalk内的Web服务进行SSL调用

问题描述 投票:0回答:2

我在AWS Elastic Beanstalk中加载了一个Web服务Java。此Web服务使用jks密钥库进行SSL休息调用。当我在我的机器上执行webservice时,我加载了keystore

    System.setProperty("javax.net.ssl.trustStore", "c:\...\file.jks"); 
    System.setProperty("javax.net.ssl.trustStorePassword", "password");
    System.setProperty("javax.net.ssl.keyStore", "c:\...\file.jks"); 
    System.setProperty("javax.net.ssl.keyStorePassword", "sviluppo");   

使用System.setProperty我需要file.jks的绝对路径。如何在AWS Elastic Beanstalk上进行相同的操作?

(我尝试使用getAbsolutePath()和getCanonicalPath()但是,在我的机器上,这些结构返回myEclipse根目录)

java amazon-web-services ssl keystore amazon-elastic-beanstalk
2个回答
1
投票

首先,您必须将file.jks与您的Java应用程序(WAR或JAR)捆绑在一起,然后您可以从file.jks的相对路径获取绝对路径,如本接受的答案所述:Converting Relative Paths to Absolute Paths


0
投票

感谢您的回答。我用这种方式解决它:首先我将我的jks文件放在项目包“package”中,客户端为“Test”。在我的代码里面我写道:

String pathKeyStore = package.Test.class.getResource("file.jks").getPath();
pathKeyStore = pathResourceKeyStore.replaceAll("%20", " ");

System.setProperty("javax.net.ssl.trustStore", pathKeyStore);
System.setProperty("javax.net.ssl.trustStorePassword", "password");
System.setProperty("javax.net.ssl.keyStore", pathKeyStore); 
System.setProperty("javax.net.ssl.keyStorePassword", "password");

它也适用于AWS Elastic Beanstalk!

© www.soinside.com 2019 - 2024. All rights reserved.