在 Amazon SQS 上获得“peer not authenticated”异常

Posted

技术标签:

【中文标题】在 Amazon SQS 上获得“peer not authenticated”异常【英文标题】:Getting "peer not authenticated" exception on Amazon SQS 【发布时间】:2014-04-15 20:52:58 【问题描述】:

在本地从 JAR 运行以下代码时:

public static List<Message> getMessages(AmazonSQS sqs, String queueUrl) throws IOException 
    ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl).withWaitTimeSeconds(5);
    List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
    return messages;

它工作得很好。但是当尝试在 EC2 实例上远程运行它时,我得到了以下异常:

2014 年 4 月 15 日晚上 8:30:48 com.amazonaws.http.AmazonHttpClient executeHelper INFO:无法执行 HTTP 请求:peer not 经过身份验证的 javax.net.ssl.SSLPeerUnverifiedException: peer not 认证 在 sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:371) 在 org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:126) 在 org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572) 在 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:1 80) 在 org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) 在 org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645) 在 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) 在 com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:384) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:232) 在 com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:2170) 在 com.amazonaws.services.sqs.AmazonSQSClient.receiveMessage(AmazonSQSClient.java:942) 在 Utils.getMessages(Utils.java:80) 在 Manager.run(Manager.java:51) 在 Main.main(Main.java:10) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:616) 在 org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

搜索这些异常只会引发明确使用 HttpClient 的人提出的问题,以及似乎与我的用法无关的解决方案。

【问题讨论】:

在两种情况下使用相同的权限? 是的。有问题吗? 【参考方案1】:

问题是我使用了错误的 AMI,与不兼容的 JRE。

【讨论】:

以上是关于在 Amazon SQS 上获得“peer not authenticated”异常的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon Elastic Beanstalk 上守护 PHP 脚本(SQS 侦听器)

Amazon SQS 消息队列服务

探索 Amazon SQS 的架构

在@MessageDriven bean 中使用 amazon sqs - 池化/并行处理

在发送到 SNS 之前,我可以使用 Amazon SQS 作为延迟队列吗?

Amazon SQS:两个当前消费者使用相同的消息