【问题标题】:SSL and Amazon AWS java SDKSSL 和亚马逊 AWS java SDK
【发布时间】:2011-12-21 15:34:01
【问题描述】:

我的应用程序有问题:我必须在使用自己的 SSL 连接的流中集成对 Amazon EC2 的请求。 所以要启动我的应用程序,我必须使用这个命令:

java -cp 。 -Djavax.net.ssl.keyStore=config/serverkeys -Djavax.net.ssl.keyStorePassword=mypass -Djavax.net.ssl.trustStore=config/serverkeys -Djavax.net.ssl.trustStorePassword=mypass -jar app.jar

但 Amazon EC2 回答:无法执行 HTTP 请求:对等体未通过身份验证

如果我删除了 trusstore 部分,那么我只使用 java -cp 。 -Djavax.net.ssl.keyStore=config/serverkeys -Djavax.net.ssl.keyStorePassword=mypass,一切顺利。 看来我的 truststore 中需要一个 Amazon EC2 证书...

有人对此有好的想法吗? 谢谢, 对不起我的英语

【问题讨论】:

    标签: java ssl amazon-ec2


    【解决方案1】:

    您不应该对密钥库和信任库使用相同的文件。您需要 Amazon 将信任您的密钥库的私钥和证书。您的信任库包含 信任的公共证书,在这种情况下是亚马逊的,这是您目前没有的,因此出现错误。如果 SSL 服务器使用 CA 签名的证书,则根本不需要自己的信任库,JRE 附带的默认信任库就可以了。

    【讨论】:

    • 有没有办法获取Amazon Ec2证书?
    • 从我的错误中,是否可以理解亚马逊不接受来自我的连接或我的应用程序不接受来自亚马逊的连接?
    • 亚马逊不信任您的证书,或者它甚至没有被发送。使用 -Djavax.net.debug=ssl,handshake 运行您的应用程序并发布输出,我会告诉您它是什么。
    • @Max 实际上,您的信任库没有 tesurvMason 的证书。您是否使用上述默认的 Java 信任库?
    • 我使用自定义的信任库。如果我使用默认的 Java Trustore,我可以连接到 ec2,但我的应用程序线程不会相互通信。但我应该使用自定义 trustore,因为我的应用程序是另一个更大的应用程序的一部分。
    猜你喜欢
    • 2017-03-08
    • 2013-11-24
    • 2014-04-29
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2015-01-23
    相关资源
    最近更新 更多