簡體   English   中英

在C#中使用SSL證書使用Rest服務

[英]Consuming Rest service with SSL certificate in C#

我正在嘗試使用rest服務來讀取C#中的Active MQ消息。 該服務具有沒有密碼的SSL證書。 當我在瀏覽器(chrome,restlet客戶端)中使用服務URL而不在郵遞員中使用服務URL時,我可以成功獲得響應。 在訪問網址之前,我已將證書添加到Chrome。

這是HTTPS服務。

我必須通過SSL證書以及我的http請求調用該服務。 我已經嘗試了WebRequestHandler,HttpWebRequest,HttpClient,但是沒有運氣。

當我這樣做時,我收到以下錯誤。

基礎連接已關閉:無法為SSL / TLS安全通道建立信任關系。

string url =  System.Configuration.ConfigurationManager.AppSettings["ActiveMQDev"].ToString();
string certFileName = System.Configuration.ConfigurationManager.AppSettings["SSLCertPath"].ToString();

// create HTTP web request with proper content type
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.ContentType = "application/json;charset=UTF8";
X509Certificate2 cert = new X509Certificate2(certFileName);
request.ClientCertificates.Add(cert);
request.PreAuthenticate = true;
WebResponse response;


using (new ServerCertificateValidationScope(request, delegate { return true; }))
{
    // call the web service and get response
    response = request.GetResponse();   
}

if (response != null)
{
    //handle the response
}

這抑制了異常,但是我得到了

RemoteCertificateNameMismatch

回調中的錯誤(發送方,證書,鏈,錯誤)。

當我沒有取消SSL錯誤的電話時,我得到了一個

401來自服務器的未經授權的響應。

任何幫助深表感謝。 謝謝!

因此,我們回到了向我們提供證書的團隊,那是錯誤的! 現在,我們獲得了一個帶有密碼的證書及其pfx文件。 現在,我們直接訪問隊列,將證書附加到請求中。 這似乎已經解決了進入隊列並訪問其中的消息的問題。 我們現在唯一的問題是消息沒有出隊,但我想這就是AMQ團隊的頭疼。 如果有人需要使用NMS api直接訪問AMQ的代碼,請給我發送一條消息。 我可以寄樣品。 感謝你的幫助。 真的很感激!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM