websphere配置_在WebSphere Message Broker中设置SSL配置

websphere配置

在许多环境中,由于配置和设置中涉及的组件数量众多,因此安全套接字层(SSL)配置具有挑战性。 IBM®WebSphere®MQ中的SSL配置和用法与WebSphere Message Broker中的SSL用法完全不同,包括术语上的差异。 实施WebSphere Message Broker SSL需要对开发人员有一个WebSphere Message Broker节点的充分了解,并需要对基础结构支持团队有一个WebSphere Message Broker Infrastructure的良好理解。

WebSphere Message Broker是Web服务代理和Web服务定义语言(WSDL)定义的转换的便捷中心点。 消息流可以是调出Web服务的请求者(客户端),也可以是其Web Service客户端调用的服务提供者。 为此目的最常用的节点是HTTPInput节点,HTTPReply节点,HTTPRequest节点和相应的HTTPS节点。

本文向您展示如何在WebSphere Message Broker上实现SSL并配置HTTP以使用SSL(HTTPS)通信。

信任库目录结构

Java密钥库(JKS)格式的信任库cacerts文件存储在AIX上的以下缺省位置:

  • WebSphere Message Broker V6:/ opt / IBM / mqsi / 610 / jre15 / ppc64 / lib / security
  • WebSphere Message Broker V7:/opt/IBM/mqsi/7.0/jre16/lib/security

密钥库文件可以存储在任何位置,只要它在代理注册表中指定即可,如下所述。

SSL配置步骤

与WebSphere MQ中一样,WebSphere Message Broker中的SSL配置需要一个密钥存储库,称为密钥库。 SSL用于增强WebSphere Message Broker基础结构的安全性。 以下是高级SSL配置步骤:

  1. 生成密钥库-有多种创建密钥库文件的方法,例如使用gsk7cmd/gsk6cmd ,它是名为ikeyman的全局安全工具包(GSK)图形工具的一部分。 本文使用称为keytool的命令行工具。
  2. 为现有密钥库生成证书签名请求(CSR)。
  3. 将根或中间证书颁发机构(CA)证书导入到现有密钥库中。
  4. 将签名的证书导入到现有的密钥库中。
  5. 验证证书详细信息,包括:
    • 列出所有证书。
    • 列出特定的证书。
    • 列出受信任的CA证书。

1.生成密钥库

keytool -genkey -alias <broker name> -keystore <broker name>.jks -keysize 2048

keytool命令将位于Broker服务ID的路径中。 在这里,<broker name>表示服务器上运行的代理实例; 使用代理名称作为别名可区分每个代理的单独条目。

最佳做法是,密钥库文件名(keystore.jks)中应包含<代理名称>,例如<代理名称> .jks。 为了简单起见,我们将使用BROKER1作为代理的名称。 上面的命令将生成私钥以及密钥库文件。 输入上面的命令后,将提示您以下问题:

What is your first and last name?
    [Unknown]:  
What is the name of your organizational unit?
    [Unknown]:  
What is the name of your organization?
    [Unknown]:  
What is the name of your City or Locality?
    [Unknown]:  
What is the name of your State or Province?
    [Unknown]:  
What is the two-letter country code for this unit?
    [Unknown]:

在为上述问题提供答案后,将提示您验证所有信息是否正确,如下所示。 如果一切正确,请输入Yes

Is CN=, OU=, O=, L=, ST=, C= correct? (type "yes" or "no")
    [no]:  yes

Enter key password for <alias name>:
    (RETURN if same as keystore password):

样本条目如下所示:

What is your first and last name?
    [Unknown]:  BROKER1
What is the name of your organizational unit?
    [Unknown]:  ZONE1
What is the name of your organization?
    [Unknown]:  IBM
What is the name of your City or Locality?
    [Unknown]:  US
What is the name of your State or Province?
    [Unknown]:  Washington
What is the two-letter country code for this unit?
    [Unknown]:  US
Is CN=BROKER1, OU=ZONE1, O=IBM, L=US, ST=Washington, C=US correct? (type "yes" or "no")
    [no]:  yes
Enter key password for <bonca60>:
    (RETURN if same as keystore password):  ********
$

2.为现有密钥库生成证书签名请求(CSR)

keytool -certreq -alias BROKER1 -keystore BROKER1.jks -file BROKER1.csr

在这里创建一个私钥。 将CSR文件发送给CA团队以获取生成的证书。 将CSR传递给CA的过程取决于CA-传输证书详细信息的最流行方法是通过Web链接。 您从CA收到签名证书(以下称为certificate.der)后,请继续执行以下步骤:

3.将根或中间CA证书导入现有密钥库

keytool -import -trustcacerts -alias root -file Thawte.crt -keystore BROKER1.jks

密钥库文件名是BROKER1.jks,中间CA证书是Thawte.crt。

在导入签名证书之前,必须先导入根CA和/或中间CA证书,因为证书按顺序工作。 根证书必须存在于密钥文件中,以便已签名的证书具有适合的平台。 最常用的CA是GlobalSignVeriSign

4.将签名的证书导入现有的密钥库

keytool -import -trustcacerts -alias BROKER1 -file certificate.der -keystore BROKER1.jks

该证书是您从上述CA那里获得的证书。 签名的证书文件名是certificate.der。

5.验证证书详细信息

为确保已正确执行上述步骤,执行以下验证和验证检查非常重要:

列出密钥库中所有可用的证书

keytool -list -keystore BROKER1.jks

/home/brkr>keytool -list -keystore BROKER1.jks
IBMJSSEProvider2 Build-Level: -20100325
Enter keystore password:

Keystore type: jks
Keystore provider: IBMJCE

Your keystore contains 11 entries

verisign class 1 public primary certification authority - g3, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): B1:47:BC:18:57:D1:18:A0:78:2D:EC:71:E8:2A:95:73
verisign class 1 public primary certification authority - g2, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): DB:23:3D:F9:69:FA:4B:B9:95:80:44:73:5E:7D:41:83
verisign class 4 public primary certification authority - g3, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): DB:C8:F2:27:2E:B1:EA:6A:29:23:5D:FE:56:3E:33:DF
verisign class 4 public primary certification authority - g2, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): 26:6D:2C:19:98:B6:70:68:38:50:54:19:EC:90:34:60
verisign class 2 public primary certification authority, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): B3:9C:25:B1:C3:2E:32:53:80:15:30:9D:4D:02:77:3E
entrust.net global client certification authority, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): 9A:77:19:18:ED:96:CF:DF:1B:B7:0E:F5:8D:B9:88:2E
thawte_dv_ssl_ca_3, Oct 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): A5:97:C7:3F:D2:0D:F6:0C:10:D5:4D:31:49:D6:CA:9D
verisign class 2 public primary certification authority - g3, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): F8:BE:C4:63:22:C9:A8:46:74:8B:B8:1D:1E:4A:2B:F6
verisign class 2 public primary certification authority - g2, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): 2D:BB:E5:25:D3:D1:65:82:3A:B7:0E:FA:E6:EB:E2:E1
verisign class 3 secure server ca, Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): 2A:C8:48:C0:85:F3:27:DE:32:29:44:BB:B0:2C:79:F8
verisign class 3 public primary certification authority, 
    Sep 14, 2011, trustedCertEntry,
Certificate fingerprint (MD5): 10:FC:63:5D:F6:26:3E:0D:F3:25:BE:5F:79:CD:67:67

列出特定证书

keytool -list –v –keystore BROKER1.jks –alias <alias name>
/home/brkr>keytool -list -v -keystore BROKER1.jks -alias broker1
IBMJSSEProvider2 Build-Level: -20100325
Enter keystore password:
Alias name: broker1
Creation date: Sep 14, 2011
Entry type: keyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=xxxx.xxx.xxxxxxxx.com, OU=Zone1, O=IBM, L=India, ST=Chennai, C=IN
Issuer: CN=M-PKI-TER-CA, O=IBM, C=IN
Serial number: 13fd3b
Valid from: 9/8/11 1:51 PM until: 10/12/12 1:51 PM
Certificate fingerprints:
    MD5:  21:6B:F8:B8:31:3B:CA:5A:6D:92:86:80:B6:24:70:C1
    SHA1: DC:88:DA:49:72:4E:53:F5:74:6D:7C:82:A8:18:7C:7F:A3:E1:FA:BD

列出受信任的CA证书

此命令显示CA授权证书详细信息:

keytool -list –v -keystore /opt/IBM/mqsi/7.0/jre16/lib/security/cacerts

配置Message Broker以服务HTTP / HTTPS请求

在WebSphere Message Broker中,HTTPInput,HTTPReply,HTTPRequest,SOAPInput,SOAPReply,SOAPRequest和SOAPAsyncRequest节点用于促进与Web服务之间的HTTP / HTTS请求。 有关这些节点的更多信息,请参阅WebSphere Message Broker信息中心中的内置节点

作为代理基础结构更改的一部分,您必须告诉代理在哪里查找密钥库和信任库文件:

1.列出经纪人注册表

mqsireportproperties BROKER1 -o BrokerRegistry -r
BrokerRegistry
    uuid='BrokerRegistry'
    brokerKeystoreType='JKS'
    brokerKeystoreFile=' /home/brkr/BROKER1.jks’
    brokerKeystorePass='brokerKeystore::password'
    brokerTruststoreType='JKS'
    brokerTruststoreFile=' /opt/IBM/mqsi/7.0/jre16/lib/security/cacerts'
    brokerTruststorePass='brokerTruststore::password'
    httpConnectorPortRange=''
    httpsConnectorPortRange=''
    modeExtensions=''
    operationMode='enterprise'
    shortDesc=''
    longDesc=''
BIP8071I: Successful command completion.

有关更多信息,请参阅WebSphere Message Broker信息中心中的mqsireportproperties命令

2.将根证书和服务器证书导入代理信任库

遍历CODE/opt/IBM/mqsi/7.0/jre16/lib/security并继续以下步骤:

keytool -import -trustcacerts –alias root.Cert -file /home/brkr/ Thawte.crt 
   -keypass <password> -keystore cacerts –storepass changeit

keytool -import -alias BROKER1 -file /home/brkr/certificate.der 
   -keystore cacerts –storepass changeit

trustore(证书)的默认密码为XXXXX

3.在代理实例上启用SSL

此命令为HTTP侦听器对象启用SSL:

mqsichangeproperties BROKER1 -b httplistener -o HTTPListener -n enableSSLConnector -v true

4.修改代理属性以指向密钥库文件

密钥库文件是在上面的第1步中生成的生成密钥库

mqsichangeproperties BROKER1 -b httplistener -o HTTPSConnector -n keystoreFile 
    -v /home/brkr/BROKER1.jks

5.将代理密钥库文件添加到代理注册表

mqsichangeproperties BROKER1 -o BrokerRegistry -n brokerKeystoreFile 
    -v /home/brkr/BROKER1.jks

6.将代理信任库文件添加到代理注册表

mqsichangeproperties BROKER1 -o BrokerRegistry -n brokerTruststoreFile 
     -v /opt/IBM/mqsi/7.0/jre16/lib/security/cacerts

7.设置密钥库的注册表密码

mqsisetdbparms BROKER1 -n brokerTruststore::password -u temp -p changeit

8.将代理与密钥库密码关联

mqsichangeproperties BROKER1 -b httplistener -o HTTPSConnector -n keystorePass 
    -v <password>

9.关联用于代理的端口以服务HTTPS请求

mqsichangeproperties BROKER1 -b httplistener -o HTTPSConnector -n port -v 7094

现在,BROKER1将在端口7094上运行以进行HTTPS请求。 HTTPS请求的默认端口= 7083

10.为代理关联端口以服务HTTP请求

mqsichangeproperties BROKER1 -b httplistener -o HTTPConnector -n port -v 7091

现在,BROKER1将在7091端口上运行以进行HTTP请求。 HTTP请求的默认端口为7080。

11.更改JVM属性

您可以根据需要通过修改对象ComIbmJVMManager来更改JVM堆大小:

mqsichangeproperties BROKER1 -o ComIbmJVMManager -n jvmMaxHeapSize -v 1048576000
mqsichangeproperties BROKER1 -o ComIbmJVMManager -n jvmMinHeapSize -v 134217728

12.验证代理属性

mqsireportproperties BROKER1 -b httplistener -o HTTPConnector -n port
7091
BIP8071I: Successful command completion.

mqsireportproperties BROKER1 -b httplistener -o HTTPSConnector -n port
7094
BIP8071I: Successful command completion.

13.重新启动代理

mqsistop <Broker Name>
mqsistart <Broker Name>
mqsistop BROKER1
mqsistart BROKER1

专门为执行组设置端口

要处理SOAP请求,需要在执行组(EG)级别上配置端口。 每个执行组具有一个侦听器,一个HTTP端口和一个HTTPS端口。 缺省的SOAP节点端口号对于HTTP是7800,对于HTTPS是7843。 在下面的示例中,<EG名称>代表执行组名称。

1.配置SSL协议

首先告诉EG使用哪种SSL协议类型。 SSLv3是默认的SSL协议。

mqsichangeproperties BROKER1 -e <EG Name> -o HTTPSConnector -n sslProtocol -v SSLv3

2.为基于HTTP请求的SOAP配置端口

显式配置用于HTTP over SOAP的端口。

mqsichangeproperties BROKER1 –e <EG Name> -o HTTPSConnector 
    -n explicitlySetPortNumber -v 7963

3.将密钥库文件与代理EG相关联

先前创建的密钥库文件需要与代理实例关联,以便它知道其存储库文件。 为避免混淆,服务器上不要有多个密钥库文件。

mqsichangeproperties BROKER1 -e <EG Name> -o HTTPSConnector 
    -n keystoreFile -v /home/brkr/BROKER1.jks

4.关联密钥库类型。

您应该在代理上配置密钥库类型,因为代理还支持其他几种密钥库类型。 这些类型的信息不在本文的讨论范围之内,本文使用Java密钥库(JKS)。

mqsichangeproperties BROKER1 -e <EG Name> -o HTTPSConnector -n keystoreType -v JKS

5.关联密钥库密码

将密钥库密码与代理相关联,以便它可以将其保存在注册表中以进行身份​​验证,这在查询新请求时是必需的:

mqsichangeproperties BROKER1 -e <EG Name> -o HTTPSConnector -n keystorePass -v <password>

为执行组设置JVM属性

在WebSphere Message Broker中启动执行组时,它将创建一个JVM,该JVM主要由使用Java功能的IBM基本节点使用。 可以通过直接将参数传递给它或通过代理来配置DataFlowEngine JVM。 通过上述任何一种方式使用代理JVM时,DataFlowEngine内存可能会继续增长,并可能导致资源问题。 使用以下几个命令来设置最小和最大JVM堆大小:

mqsichangeproperties BROKER1 -e <EG Name> -o ComIbmJVMManager -n keystoreFile 
    -v /home/brkr/BROKER1.jks
mqsichangeproperties BROKER1 -e <EG Name> -o ComIbmJVMManager -n keystoreType 
    -v JKS
mqsichangeproperties BROKER1 -e <EG Name> -o ComIbmJVMManager -n keystorePass 
    -v brokerKeystore::password
mqsichangeproperties BROKER1 -e <EG Name> -o ComIbmJVMManager -n truststoreFile 
    -v /home/brkr/BROKER1.jks

在此命令中,密钥库文件类型与ComIbmJVMManager对象关联。

mqsichangeproperties BROKER1 -e <EG Name> -o ComIbmJVMManager -n truststoreType -v JKS

查询新请求时,请将密钥库密码与代理的ComIbmJVMManager对象相关联,以便可以将其保存在其注册表中以进行身份​​验证:

mqsichangeproperties BROKER1 -e <EG Name> -o ComIbmJVMManager -n truststorePass 
    -v brokerTruststore::password

问题场景

在这种情况下,CA提供的签名证书不正确。 这种情况下进行故障排除有点棘手,但是您可以在使用上面描述的命令时特别注意它们的输出。

我们更新了经纪人证书,并能够在正确的开始和到期日期的同一服务器上显示证书详细信息。 为了对其进行确认,我们在相应的Message Broker服务器上尝试使用URL https://<hostname of UNIX server:><port> ,它正确显示了更新的证书以及开始日期和到期日期。 但是应用程序无法连接到Message Broker,并收到证书验证错误。 通常,.der格式的证书是作为证书更新的一部分导入的。 我们确定.der证书没有链接的证书,因为CA团队未能包含它们。 是什么让我们认为链接的证书丢失了? 我们显示了证书的完整列表并比较了环境。 那些链接证书是什么? 它们是标识CA的证书。

/var/mqsi/ssl/BROKER1>keytool -list -v -alias broker1 -keystore BROKER1.jks 
    -storepass <password>
Alias name: broker1
Creation date: Dec 9, 2011
Entry type: keyEntry
Certificate chain length: 3
Certificate[1]:
Owner: CN=servername, OU=ZONE1, O=IBM, L=CN, C=IN
Issuer: CN=IBM_PKI_SubCA2, O=IBM, C=IN
Serial number: 3142a
Valid from: 11/7/11 8:43 AM until: 12/11/12 8:43 AM
Certificate fingerprints:
    MD5:  93:7F:6D:07:72:AA:47:0D:0A:BB:1C:9D:1B:3F:68:F8
    SHA1: D2:7E:1B:99:46:DB:88:24:4E:AE:35:B1:DF:D6:40:58:20:91:D1:18
Certificate[2]:
Owner: CN=IBM_PKI_SubCA2, O=IBM, C=IN
Issuer: CN=IBM_PKI_CA, O=IBM, C=IN
Serial number: 2
Valid from: 5/14/03 4:04 AM until: 5/14/13 4:04 AM
Certificate fingerprints:
    MD5:  BE:F7:0A:42:D7:C7:A8:40:B6:31:B1:93:E1:1B:6D:D6
    SHA1: 77:E1:05:21:74:3E:65:6A:11:DB:3D:BD:D2:34:99:7F:45:93:F8:5A
Certificate[3]:
Owner: CN=IBM_PKI_CA, O=IBM, C=IN
Issuer: CN=IBM_PKI_CA, O=IBM, C=IN
Serial number: 0
Valid from: 5/31/02 3:34 AM until: 5/31/32 3:34 AM
Certificate fingerprints:
    MD5:  8E:E6:5E:54:97:0E:DA:E9:12:65:7C:E1:C3:8A:5B:C6
    SHA1: B4:C2:C5:17:91:3D:2F:32:10:AB:2D:5A:99:5A:08:5C:10:4F:3E:2B

结论

本文介绍了在WebSphere Message Broker V6和V7中实现SSL通信的标准机制。 它还描述了由CA提供的不正确的证书导致的客户环境中的常见问题。

致谢

作者要感谢以下个人的宝贵意见和反馈:

  • Hermann Huebler-IBM印度应用集成和中间件解决方案专家和中小型企业
  • Muthukumar Manoharan-IBM印度WebSphere MQ和WebSphere Message Broker支持的支持专家
  • Vivek Grover-IBM美国WebSphere Message Broker和WebSphere Business Events Level-2支持团队负责人

翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1205_bhat/1205_bhat.html

websphere配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值