【问题标题】:ActiveMQ plugin for Grails taking over SSL connections?Grails 的 ActiveMQ 插件接管 SSL 连接?
【发布时间】:2016-02-04 21:03:35
【问题描述】:

我正在为 Grails (2.4.x) 使用 ActiveMQ plugin,它与 SSL 连接混淆了。搞乱 SSL 连接是指它不允许客户端浏览器使用 SSL 连接到 Grails 应用程序。

任何尝试连接到 Web 应用程序的 SSL 端口(无论设置为什么)都会导致浏览器报告 ERR_SSL_PROTOCOL_ERROR

如果我禁用插件 SSL 工作正常。

我已经查看了插件源代码,但我没有看到任何应该这样做的东西。

我完全不知所措,这让我发疯。我不确定我可以提供哪些其他信息来帮助其他人帮助我,但我希望有人可以指出我可以用来禁用这种奇怪行为的某种 ActiveMQ 设置。

插件中包含的库如下:

activemq-broker-5.10.1.jar
activemq-client-5.10.1.jar
activemq-jms-pool-5.10.1.jar
activemq-openwire-legacy-5.10.1.jar
activemq-pool-5.10.1.jar
activemq-spring-5.10.1.jar

【问题讨论】:

    标签: grails ssl activemq


    【解决方案1】:

    事实证明,这是因为 Active MQ 检测到“Bouncy Castle”安全提供程序是否在类路径上可用,并在创建代理时将其添加到第二个位置的 java.security.Security 提供程序中。

    不幸的是,Active MQ 中没有禁用此功能的选项,它在 JIRA 中进行了简要讨论,并确定这永远不会成为一个选项。

    由于该项目还为 Grails 使用了 crypto:2.0 插件,因此它正在为 JVM 加载 Bouncy Castle 安全提供程序。作为独立的,Active MQ 可以这样做,但是当嵌入到 Tomcat 中时,这会导致 SSL 出现问题。不确定为什么 Bouncy Castle 提供程序没有正确处理 SSL TLS,但将以下内容添加到 BootStrap.groovy 会将其从提供程序中删除并解决问题。

    java.security.Security.removeProvider('BC')

    在这个项目中,我们在虚拟机中使用 ActiveMQ,并且不需要任何额外的安全提供程序让 Active MQ 用于 SSL 连接,因为无论如何它都不会使用它们。

    【讨论】:

      猜你喜欢
      • 2018-12-20
      • 2018-07-19
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 2010-09-17
      • 2016-04-17
      • 2015-07-18
      • 2017-09-16
      相关资源
      最近更新 更多