繁体   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