【问题标题】:Add certificate to AWS EC2 client将证书添加到 AWS EC2 客户端
【发布时间】:2015-10-26 20:41:28
【问题描述】:

我正在使用 EC2 java 类。要成功连接到 AWS 账户,我必须使用 keytool 命令将证书(.crt 文件)添加到本地 Java cacerts 文件中,当代码在本地运行时效果很好。
问题是我需要代码在服务器上运行,在该服务器上我无法访问cacerts 文件,因此我尝试使用ClientConfiguration 类以编程方式添加证书。我将我的cacerts 文件上传到服务器,程序将其读取为KeyStore 对象,并创建一个SSLSocketFactory 实例:

SSLSocketFactory socketFactory = new SSLSocketFactory(keyStore, "<password>");
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.getApacheHttpClientConfig().setSslSocketFactory(socketFactory);
AWSCredentials credentialsProvider = new BasicAWSCredentials("<key>", "<private key>");
AmazonEC2 ec2 = new AmazonEC2Client(credentialsProvider, clientConfig);

但它仍然会产生HTTP Status 500 - Unable to execute HTTP request: peer not authenticated 错误。
我检查了添加的证书别名是否可以成功读取,使用密钥库的getCertificate 方法。
发送到SSLSocketFactory 构造函数的"&lt;password&gt;" 是密钥库的密码。
这是向 EC2 添加证书的正确方法吗?

【问题讨论】:

    标签: java ssl amazon-ec2 certificate aws-sdk


    【解决方案1】:

    问题在于 SSLSocketFactory 构造函数的密码参数不需要。向 KeyStore 构造函数提供密码就足够了,而对于 SSLSocketFactory 来说很简单:

    SSLSocketFactory socketFactory = new SSLSocketFactory(keyStore);
    

    【讨论】:

      猜你喜欢
      • 2017-10-18
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2018-08-15
      相关资源
      最近更新 更多