繁体   English   中英

使用SSL从AIX机器连接到Remote Queue Manager

[英]Connecting to a Remote Queue Manager from an AIX Machine using SSL

我正在尝试使用AIX机器上的SSL连接到远程QM。

我已设置我的QM和频道以允许SSL连接。 SSL密码规范

我已经在服务器(包含上述QM +通道的机器)上创建了密钥库,并导出了其自签名证书,并从客户端导入了证书。 自签名证书-服务器 签名证书-客户

我已经在AIX机器上使用GSK创建了一个密钥库,其中同时存在服务器的自签名和签名者。 客户端证书

尝试连接到QM时,客户端代码如下。 该代码在Windows上确实有效,但是在AIX上却不起作用,这使我相信这是证书问题,我做错了,而不是代码问题。

CipherSpec为-TLS_RSA_WITH_AES_256_CBC_SHA256,并且密钥库位置正确。

m_QChannel.setChannelName(m_strChannelName);
    m_QChannel.setConnectionName(m_pParent->GetName());
    m_QChannel.setTransportType( MQXPT_TCP );

    if (!m_strCipherSpec.IsEmpty())
    {
        m_QChannel.setSslCipherSpecification(m_strCipherSpec);

        if (!m_strKeyStore.IsEmpty())
        {
            m_QMgr.setKeyRepository(m_strKeyStore);
        }
        else
        {
            CString strKeyStore = getenv("MQSSLKEYR");
            m_QMgr.setKeyRepository(strKeyStore);
        }
    }

    //Set the queue manager options
    m_QMgr.setName(m_strName);
    m_QMgr.setChannelReference(&m_QChannel);

    if (!m_QMgr.connect()) 
    {
        m_iLastError =m_QMgr.reasonCode( ) ;

        return false;         
    }

但是,当我尝试运行我的应用程序进行连接时,得到返回的MQRC 2393错误,在检查错误日志时会抱怨证书。

错误2393 错误记录

我尝试过重新启动QM,重新启动通道,刷新SSL,但是都没有运气。 我错过了什么?

任何帮助表示赞赏。

您拥有的客户机证书的当前标签是ibmwebspherebldaix02

对于MQI客户端应用程序,MQ将查找的缺省证书标签是字符串ibmwebspheremq后跟应用程序正在运行的用户的名称,全部用小写字母表示。

在这种情况下,它不符合缺省要求的第一部分,因为它以ibmwebsphere并缺少mq ,然后跟随bldaix02

您有几种选择:

  1. 如果用户是bldaix02则可以将密钥库中的证书重命名为ibmwebspheremqbldaix02 如果不是用户名,则将证书重命名为ibmwebspheremq<username>全部小写。 此选项应与所有版本的IBM MQ产品一起使用。
  2. 如果您使用的是IBM MQ v7.0-7.5( 全部不支持 ),则可以在启动应用程序之前或在程序中进行操作时,通过将环境变量AMQ_SSL_ALLOW_DEFAULT_CERT设置为任何值来告诉MQ使用默认证书。在调用connect之前先执行此操作。 请注意,此功能在IBM MQ v8.0和v9.0的初始版本中已被删除,但后来在8.0.0.7和9.0.0.1及更高版本中被添加。
  3. 如果您正在使用IBM MQ v8.0或更高版本( 应该是因为这是当前唯一受支持的版本 ),则可以告诉MQ寻找不同的标签。 您可以通过四种方式执行此操作:

    1. 如果使用CCDT,请设置CLNTCONN通道的CERTLABL属性。
    2. 以编程方式在MQSCO设置CertificateLabel属性
    3. 在启动应用程序之前设置环境变量MQCERTLABL ,或者如果在程序中执行环境变量,则在调用connect之前进行设置。
    4. 在mqclient.ini中使用SSL:节的CertificateLabel属性。
      注意: MQ有多种方法可以找到mqclient.ini,这些方法在IBM MQ知识中心和StackOverflow上的各种答案中都有详细介绍。

您可以在以下链接中找到更多信息:

  1. 技术说明:在MQ客户端的SSL证书标签中指定用户ID
  2. IBM MQ 8.0.0知识中心> IBM MQ>安全性>安全性概述> IBM MQ安全性机制> IBM MQ中的安全性协议> SSL或TLS密钥存储库>数字证书标签,了解需求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM