[英]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.