使用SSL连接时获取RabbitMQ连接问题

使用SSL连接时获取RabbitMQ连接问题,rabbitmq,spring-rabbit,Rabbitmq,Spring Rabbit,在连接端口8071上的服务器时,我遇到以下异常。我被告知在端口8071上配置了SSL,因此连接被阻止,但错误消息没有明确说明SSL握手失败等情况 Attempting to connect to: auslabrmq1.abc.xyz.com:8071 16:41:07.012 [springListenerContainerCSWF-5] ERROR org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer

在连接端口8071上的服务器时,我遇到以下异常。我被告知在端口8071上配置了SSL,因此连接被阻止,但错误消息没有明确说明SSL握手失败等情况

Attempting to connect to: auslabrmq1.abc.xyz.com:8071
16:41:07.012 [springListenerContainerCSWF-5] ERROR org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer - Failed to check/redeclare auto-delete queue(s).
org.springframework.amqp.AmqpIOException: java.io.IOException
    at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:71)
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:509)
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:702)
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:214)
    at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2073)
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2047)
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2027)
    at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:403)
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.attemptDeclarations(AbstractMessageListenerContainer.java:1787)
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.redeclareElementsIfNecessary(AbstractMessageListenerContainer.java:1768)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1195)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1041)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: null
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:126)
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:122)
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:373)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1104)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1054)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1218)
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:471)
    ... 11 common frames omitted
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error
    at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:494)
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:315)
    ... 15 common frames omitted
Caused by: java.io.EOFException: null
    at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:290)
    at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91)
    at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164)
    at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:596) 
有人能帮我理解为什么会发生这种事吗

我正在使用的XML bean配置是:

<bean id="clientConnectionFactorySSL"
        class="org.springframework.amqp.rabbit.connection.RabbitConnectionFactoryBean">
        <property name="useSSL" value="true" />
        <property name="sslAlgorithm" value="TLSv1.2"/>
        <property name="keyStoreType" value="PKCS12"/>
        <property name="trustStoreType" value="JKS"/>
        <property name="skipServerCertificateValidation" value="false"/>
        </bean>


    <!-- CachingConnectionFactory -->
    <bean id="cachingConnectionFactory"
        class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
        <constructor-arg value = "clientConnectionFactorySSL"/>
        <property name="virtualHost" value="XXXX" />
        <property name="host" value="XXX-XXX" />
        <property name="port" value="8071" />
        <property name="username" value="username"/>
        <property name="password" value="password"/>
        </bean>


我的问题是否与下面提到的问题有关?不,这与那个问题无关。我最好的猜测是端口不是amqp协议-您应该查看服务器日志。您应该向rabbitmq用户谷歌小组询问此类问题,rabbitmq工程师比这里更经常地监控这些问题。再次感谢@GaryRussell的快速回复。我也在谷歌集团上发布了这个问题。8071是amqp协议,因为我们的MQ团队确认其他应用程序正在同一端口上通信。connStart=(amqp.Connection.Start)connStartBlocker.getReply(handshakeTimeout/2).getMethod();这个电话似乎失败了。我不确定为什么只有在实际指定存储路径时才使用密钥和信任存储类型。如果不指定这些,则初始化上下文时不使用密钥管理器和默认的信任管理器
sslContext.init(null,trustManagerFactory.getTrustManagers(),null)