2010-12-09 93 views
2

使用C#連接到啓用SSL的隊列管理器時,需要設置哪些值才能使隊列正常工作?使用Websphere MQ版本7.0.1的C# - SSL

我目前得到這個錯誤: 原因代碼:2393 MQRC_SSL_INITIALIZATION_ERROR

在我的代碼,我設置MQEnvironment.SSLKeyRepository和MQEnvironment.SSLCipherSpec

有沒有別的東西,我需要用C#來設置做這個工作?我已經看到一些設置密鑰庫密碼和類型以及事物的Java示例。

我也看過一些設置系統環境變量的例子,但這似乎也沒有任何區別。

回答

1

用於調試WMQ SSL是如下的一般模式...

  1. 獲取應用程序不使用SSL連接。這消除了連接問題,隊列或隊列管理器名稱錯誤等問題。
  2. 獲取SSL與純服務器身份驗證一起使用。這意味着在SVRCONN通道上設置SSLCAUTH(可選)。 QMgr將提供應用程序必須信任的證書,但應用程序不需要向服務器進行身份驗證。這證明應用程序和QMgr都可以訪問其密鑰庫,並且QMgr的證書或CA鏈已正確加載到應用程序的密鑰庫中。
  3. 最後,在SVRCONN通道中設置SSLCAUTH(REQUIRED),以便應用程序返回到QMgr。此時唯一可能的問題是QMgr不信任應用程序的證書或CA.

如果連接嘗試被QMgr拒絕,客戶端的錯誤將故意隱瞞。詳細的消息將在QMgr的AMQERR ??。LOG文件中找到。如果失敗在客戶端,這些消息將在客戶端的錯誤日誌中找到,或者您可以啓用跟蹤。

使用strmqtrc命令啓用跟蹤並使用endmqtrc停止跟蹤。 WMQ客戶端手冊有a section描述客戶端跟蹤文件的結束位置,another section專用於在Windows上進行跟蹤。這在確定客戶端配置問題時非常有用,例如未能找到私鑰,找不到密鑰庫等。

在您的情況中,2393指示客戶端配置中的某些內容失敗。由於您不再使用密鑰庫密碼獲取錯誤,因此我猜測它可能在查找私鑰或者不信任QMgr提供的證書時遇到問題。在第一種情況下,設置SSLCAUTH(可選)將起作用,因爲客戶'不需要它的私鑰。但是,如果問題是信任QMgr或其他配置問題,SSLCAUTH(可選)將無濟於事,但追蹤應該將其排除。

順便提一下,在客戶端跟蹤和診斷的需求是爲什麼IBM不支持將JAR或庫複製而不是運行完整客戶端安裝的客戶端安裝。儘管可以通過複製幾個lib文件和類來讓客戶端運行,但這並不能提供所有跟蹤和診斷工具。如果您還沒有執行完整的客戶端安裝,那麼我在這裏描述的一些內容將不可用。如果是這種情況,請從SupportPac MQC7下載並安裝客戶端。