【问题标题】:IBM MQ: Establishing an SSL connectionIBM MQ:建立 SSL 连接
【发布时间】:2018-11-09 02:26:00
【问题描述】:

我们正在努力让 IBM MQ 跨 SSL 工作。

我们已获得远程主机的证书链并安装到 Windows 证书存储(本地计算机)中。这些看起来都有效。

我们正在使用以下连接属性:

        connectionProperties.Add(MQC.SSL_PEER_NAME_PROPERTY, "other-server.com");            
        connectionProperties.Add(MQC.SSL_CIPHER_SUITE_PROPERTY, "TLS_RSA_WITH_AES_256_CBC_SHA256");            connectionProperties.Add(MQC.SSL_CIPHER_SPEC_PROPERTY, "TLS_RSA_WITH_AES_256_CBC_SHA256"); 
        connectionProperties.Add(MQC.SSL_CERT_STORE_PROPERTY, "*SYSTEM"); 
        connectionProperties.Add("CertificateLabel", "ibmwebspheremqmywindowsusernamewithoutdomain"); 
        MQEnvironment.SSLCertRevocationCheck = true; 

我们已经确定“CertificateLabel”是 Windows 用语中的“友好名称”。

我们已经证明了未加密的通信和网络级配置。

我们使用的是 8.0.0.7 客户端。

这些是我们遇到的问题:

一般问题:

  • 我们是否正确假设我们可以在 Windows 证书存储中专门安装生成的证书?
  • 2538 错误是否与 SSL 通信有关?它感觉像一个网络错误,尽管在引用的错误文档中有最后一点。
  • 是否有任何地方可以查找更多信息性错误信息?例如。与 SSL 信任链相关,看看是否存在问题?

【问题讨论】:

  • 得到 2538 时队列管理器 AMKERR01.LOG 会产生什么错误?
  • 不幸的是,没有错误。或者,我应该说,服务器的所有者没有出现任何错误。

标签: ssl ibm-mq


【解决方案1】:

问题在于以下行:

connectionProperties.Add(MQC.SSL_PEER_NAME_PROPERTY, "otherserver.com");

事实证明:

  1. 它需要规范格式,所以DN=
  2. 你甚至不需要那条线

虽然我们在此过程中确实学到了一些东西:

  • 行:

    connectionProperties.Add("CertificateLabel", "ibmwebspheremqmyusername");

    是字符串ibmwebspheremq加上你的Windows用户名(没有你的域)并且标签应该设置在友好的名字上您的客户端计算机的传出证书不包括用户名。

  • Windows 证书存储中的各种文件夹非常重要。应正确归档中间 CA。

【讨论】:

  • 注意PeerName。您需要它来确保您不信任 任何 服务器与您正在使用的 CA。
  • 您能否详细说明“Windows 证书存储中的各种文件夹的重要性”。我正在尝试完全按照您所做的那样做,但到目前为止,我只是遇到了 MQRC_KEY_REPOSITORY_ERROR。
  • @Ykok 证书 MMC 管理单元中的“文件夹”就其用途而言非常重要。因此,中间 CA 证书需要在中间存储中,服务器证书在个人(内部称为“我的”)存储中,等等。
  • 只是补充一点,至少在 Windows 平台上使用 .net 客户端 v. 9.2.0.1 时,证书标签的处理似乎很奇怪。驱动中的代码会比较FriendlyName.ToLower()=CertificateLabel,意思是如果你的证书友好名称有大写字母,你需要指定CertificateLabel全部小写。
猜你喜欢
  • 2013-11-08
  • 2023-03-22
  • 1970-01-01
  • 2020-01-12
  • 2015-01-24
  • 1970-01-01
  • 2020-09-18
  • 2011-03-04
  • 2011-02-09
相关资源
最近更新 更多