使用 SSL/Keystore 连接到 Java 中的 Websphere MQ

2023-12-23

我想通过 Java 连接到 Websphere 6.0 MQ。我已经有了“普通”队列的工作代码,但现在我需要访问一个经过 SSL 加密(密钥库)的新队列。我收到了一个名为 Something.jks 的文件,我认为它是我需要存储在某处的证书。我一直在网上搜索,但找不到正确的信息。

这是我用于“正常”队列的代码。我认为我需要设置一些属性,但不确定是哪一个。

MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();
connectionFactory.setChannel(channel_);
connectionFactory.setHostName(hostname_);
connectionFactory.setPort(port_);
connectionFactory.setQueueManager(queueManager_);
connectionFactory.setTransportType(1);
connectionFactory.setSSsetSSLCertStores(arg0)

Connection connection = connectionFactory.createConnection();
connection.setExceptionListener(this);
session_ = connection.createSession(DEFAULT_TRANSACTED, DEFAULT_ACKMODE);
connection.start();

javax.jms.Queue fQueue = session_.createQueue(queue_);
consumer = session_.createConsumer(fQueue);

developerWorks 中的 Alex Fehners 教程有点旧(2005 年),但有适合您的代码示例。

Websphere MQ Java/JMS 客户端的 SSL 配置 http://www.ibm.com/developerworks/websphere/library/techarticles/0510_fehners/0510_fehners.html

您的 Java 应用程序将根据其证书对 QMgr 进行身份验证。这意味着您提供的 jks 文件必须具有 QMgr 的自签名证书,或者具有签署 QMgr 证书的证书颁发机构的根证书。在任何一种情况下,您都可以使用-Djavax.net.ssl.trustStore=<location of trustStore>如上面链接的文章所述。如果 jks 有密码,则需要指定-Djavax.net.ssl.trustStorePassword=<password>以及。使用信任库对 QMgr 进行身份验证是always必需的。下一部分可能需要也可能不需要。

另一个难题是 QMgr 可能要求您的应用程序提供证书。换句话说,QMgr 证书是always已验证,应用程序是否需要验证是可选的。如果是,那么您就拥有了所谓的“相互身份验证”。如果您连接的通道已配置SSLCAUTH(REQUIRED)那么相互身份验证已启用,并且 QMgr 必须拥有您的应用程序的自签名证书或在其密钥库中签署您的应用程序证书的 CA 根证书。希望设置你的 jks 文件的人已经为此做好了安排。

假设需要相互身份验证,那么除了 QMgr 的可信证书之外,您的 jks 还将拥有代表您的应用程序的私有证书。要让应用程序获取证书并将其呈现给 QMgr,您可以使用-Djavax.net.ssl.keyStore=<location of keyStore> and -Djavax.net.ssl.keyStorePassword=<password>参数。注意这些说key商店,而之前的帕尔斯说trust store.

我的建议是与 WMQ 管理员合作来设置和测试 SSL 连接。第一阶段应该是测试通道SSLCAUTH(OPTIONAL)。这将验证应用程序是否可以解析并验证 QMgr 的证书。只有当您完成此操作后,WMQ 管理员才会将通道更改为SSLCAUTH(REQUIRED)它以相反的方向测试身份验证。

I would highly建议您对新应用程序使用 WMQ v7 客户端。这有两个原因:1) v6 已于 2011 年 9 月终止; 2) v7 代码内置了更多诊断功能。v7 客户端代码与 v6 QMgr 完全兼容,并且像 v6 客户端一样工作。您只是无法获得 v7 的功能。在这里免费下载 WMQ 客户端代码:

我今年在 IMPACT 上运行 WMQ 实践安全实验室,并将在周末发布脚本和实验指南:http://t-rob.net http://t-rob.net所以回来检查一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SSL/Keystore 连接到 Java 中的 Websphere MQ 的相关文章

  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能
  • 双向 SSL 说明

    我对双向 SSL 的工作原理有些困惑 客户端如何创建其证书以发送到服务器 是从服务器生成并分发给客户端吗 另外 双向 SSL 相对于单向 SSL 有何优势 两个证书在连接之前都应该存在 它们通常由证书颁发机构创建 不一定相同 在其他情况下
  • Tomcat 托管具有多个 SSL 证书的多个虚拟主机

    例如 我有一台使用 Tomcat 7 托管多个网站的服务器 a abc com b abc com c def com d def com 使用tomcat的虚拟主机功能 因此它们各自可能属于不同的webapps文件夹 我们现在正在尝试为每
  • 使用 SSL 的 Xamarin.Forms Image.Source

    我正在使用一个在线商店来存储通过我们的应用程序上传的用户图像 并受 SSL 保护 上传工作一切顺利 因为我使用的是带有附加证书的 WebClient 但是当我尝试使用 Xamarin Forms Image 组件时 例如将源设置为 http
  • 如何在docker的keycloak中添加SSL

    我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题 我通过负载均衡器从 AWS EC2 获得了 SSL 证书 但不知道如何将其添加到 docker 上的 Keycloak 中 我正在通过谷歌搜索 但尚未找到任
  • 如何在Wamp服务器中启用SSL?

    我尝试在网上搜索它 但我很困惑 我没有得到任何澄清 逐步教程 http blog facilelogin com 2008 07 enabling ssl on wamp html 从链接复制 在 WAMP 上启用 SSL 本分步指南介绍了
  • Android SSL 无对等证书

    我有一个例外 没有同行证书 当我询问谷歌时 我得到了解决方案 我信任所有证书 但这个问题的答案是 它是不安全的 所以我给班级打电话 HostnameVerifier hostnameVerifier org apache http conn
  • 通过 HTTPS 加载页面但请求不安全的 XMLHttpRequest 端点

    我有一个页面 上面有一些 D3 javascript 该页面位于 HTTPS 网站内 但证书是自签名的 当我加载页面时 我的 D3 可视化效果不显示 并且出现错误 混合内容 页面位于 https integration jsite com
  • 如何使用Python中字符串变量中存储的证书打开ssl套接字

    在Python中 ssl wrap socket可以从文件中读取证书 ssl wrap socket需要证书作为文件路径 如何使用从字符串变量读取的证书启动 SSL 连接 我的主机环境不允许写入文件 并且临时文件模块不起作用我正在使用Pyt
  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • 如何将 x509.pem pk8 文件导入 jks-keystore?

    我已经尝试过使用该命令 keytool import keystore jks alias alias name keypass alias passwd file x509 pem no pk8 file 但是当我使用 jks 签署 AP
  • MQ 标头 - 标识符上下文 - ApplIdentityData

    我们想要从 MQ 标头上的 ApplIdentityData 中提取信息 但在消费者方面 我们没有看到 ApplIdentityData 相应的 JMS 标头 我确实跟踪了日志 但没有找到与 ApplIdentityData 相关的任何信息
  • IIS 8 HTTPS/需要 SSL 导致超时错误

    尝试通过 IIS 8 通过 SSL 发布网站 但出现超时错误 任何帮助表示赞赏 采取的步骤 已验证该网站可以通过 HTTP 访问 http xxx xxx xxx xxx有效 此时使用 IP 地址 如果重要的话 IIS gt 服务器证书 g
  • 信任库是否需要子 ca 证书?

    我正在尝试设置分层 PKI 我是否可以创建仅包含根 ca 证书的信任库 这是否意味着我的应用程序信任由子 ca 证书签名的证书 而子 ca 证书又由根 ca 签名 顺便说一句 您似乎必须提供整个证书链 包括根 ca 证书 当然 如果根 ca
  • 如何使用 net/http 验证 ruby​​ 中的 SSL 证书链

    我如何验证网站的证书 例如https processing ukash com https processing ukash com 在 ruby 中使用 net http https Net HTTP new processing uka
  • p2p 通信中的对等方如何相互验证?

    WebRTC 中的对等点如何相互验证 WebRTC 中的 DTLS 使用自签名证书 RFC 5763 https www rfc editor org rfc rfc5763具有详细信息 简而言之 证书指纹与 SDP 的 a fingerp
  • PushSharp APNS 生产:无法识别提供给包的凭据(但开发工作正常)

    我的应用程序刚刚准备在 App Store 上销售 但我的生产设备 从 App Store 安装了该应用程序的设备 都没有收到推送通知 当我尝试向生产设备发送推送通知时 出现以下错误 The credentials supplied to
  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索

随机推荐

  • 当一段时间过去或浏览器关闭时,cookie 会过期吗?

    我知道我可以设置 cookie 的过期日期 但是我可以让 cookie 在一段时间后或浏览器关闭时过期吗 如果您设置到期日期 则无论浏览器打开还是关闭 它们都会在该日期到期 一旦浏览器关闭 只有非持久性 cookie 才会过期 See co
  • 使用序数值时 php strtotime 函数出现问题

    在 strtotime 中使用序数值时 有时会得到意想不到的结果 例如 为什么 date M j strtotime second Tuesday February 2011 结果是 Feb 15 实际上是third2011 年的星期二 你
  • 如何根据 TCL 数组的键值对其进行排序?

    The INITIAL ARRAY is Key gt Value B 8 C 10 A 5 E 3 D 1 为了获得基于键的排序数组 我使用 set sorted keys array lsort array names INITIAL
  • 如何迭代 C++ 类的变量成员

    我目前正在尝试对我正在读入的一些数据的一堆变量 基于不同相空间中的标准化 进行复杂的变量校正 由于每次校正都遵循相同的过程 我想知道是否会有无论如何 要迭代地执行此操作 而不是单独处理每个变量 因为我需要对大约 18 20 个变量执行此操作
  • 调用函数的宏

    我需要一个宏 或一个函数 但最好是一个宏 它接受函数名称和无限数量的参数 然后将参数传递给函数 假设这个宏是MACROFOO define MACROFOO function what do I put here int foo bar i
  • 剥离列或行以形成一维数组

    我想从 2D 数组创建 1D 数组 而无需仅使用 1 行代码进行循环 例如 newvec oldvec 3 在 MATLAB 中 它将从 oldvec 的第三列创建一个一维数组 newvec 我的搜索告诉我 在 VBA 中执行此操作的唯一方
  • dbo.aspnet_Users 和 dbo.aspnetUsers 之间有什么区别?

    VS 2013 框架 4 5 1 我运行 Aspnet regsql exe 来创建架构 它创建的表中带有下划线 例如 aspnet Users 它还创建了关联的存储过程 这些存储过程确实有效 并且它们将记录添加到表中 例如 将用户添加到
  • RavenDb:更新非规范化参考属性值

    我已经实现了RavenDB非规范化参考 http ravendb net docs faq denormalized updates图案 我正在努力将静态索引和补丁更新请求连接在一起 以确保在引用的实例值更改时更新我的 非规范化引用属性值
  • 什么是内存碎片?

    我听说过在 C 动态内存分配上下文中多次使用过 内存碎片 这个术语 我发现了一些关于如何处理内存碎片的问题 但找不到处理它本身的直接问题 所以 什么是内存碎片 如何判断内存碎片是否是我的应用程序的问题 什么样的程序最有可能受到影响 处理内存
  • DomPDF 不能很好地渲染表格

    我正在尝试使用 DomPDF 获取 PDF 但遇到了一个奇怪的问题 所有数据和其他内容都很好 但当以 PDF 形式呈现时 表格的第一行总是过时 首先 我虽然表格可能会转到下一页 这会导致样式脱离上下文 但我尝试将表格限制为一页 发现问题仍然
  • 什么是好的 php 解析器生成器?

    我需要解析一种小的 迷你语言 用户可以在我的网站上输入它 我想知道 lex 和 jacc 或 antlr 在 php 世界中的对应部分是什么 I used PHP 的 LIME 解析器生成器 http sourceforge net pro
  • 将 Picasso 库与 ListView 一起使用

    我想做的是调整我的自定义 ListView 适配器以使用 Picasso 库从网络获取的图像 我相信我已经更改了适配器以便接受来自 Picasso 的图像 但我不确定如何更改我的实现以使用 ListView 接受它 我相信我必须访问hold
  • 如何通过扩展修改 Chrome 中的当前 url 位置

    我想创建一个扩展 如果用户单击扩展按钮 则将用户重定向到另一个网站 到目前为止 我只看到了为每次点击创建一个新选项卡的扩展 是否可以使用活动选项卡将用户重定向到另一个网站 我尝试过这样的事情 chrome browserAction onC
  • 简单的汇编代码会导致段错误吗?

    section data section text globl start start movl 1 eax this is the linux kernel command number system call for exiting a
  • C++0x 中的本地化支持有任何更新吗?

    我对 C 语言环境方面的研究越多 我就越了解 它们已经被破坏了 std time get 不对称std time put 如 C strftime strptime 中所示 并且不允许轻松解析带有 AM PM 标记的时间 I 发现 http
  • 在 C# 中按第一个元素的升序对二维数组行进行排序

    我需要按第一个元素的升序对二维数组行进行排序 如示例所示 5 7 6 2 9 6 4 8 1 gt 2 9 6 4 8 1 5 7 6 我可以在行中找到最大元素 但我现在不知道如何对行进行排序 public double maxInRow
  • PHP:get_used_class() 与 get_class($this)

    在 PHP 中 有什么区别get called class http php net manual en function get called class php and get class this http php net manua
  • SQLite 按小时、天、周、年进行分组/计数

    假设我们有一个简单的 Android 应用程序 只有一个按钮 单击该按钮记录该单击的日期和时间 在 sqlite 中 我想知道记录保存该日期时间的长串或字符串的最佳格式是什么 目的是制作报告来显示 1 选定日期的点击次数总和 按小时分组 2
  • 配置在 Eclipse 中为 Scala 运行

    我是 Scala 的初学者 我在 eclipse 中安装了 Scala IDE 现在我想运行我的应用程序 它从不显示 作为 Scala 应用程序运行 而是显示 作为 Java 应用程序运行 或 Java 小程序 我打开 运行配置 并单击 S
  • 使用 SSL/Keystore 连接到 Java 中的 Websphere MQ

    我想通过 Java 连接到 Websphere 6 0 MQ 我已经有了 普通 队列的工作代码 但现在我需要访问一个经过 SSL 加密 密钥库 的新队列 我收到了一个名为 Something jks 的文件 我认为它是我需要存储在某处的证书