更改服务器上的SSL证书是否会破坏代码?

时间:2014-10-15 20:42:27

标签: c# asp.net .net xml ssl

编辑: 我应该用什么来捕捉错误?

我有这个,它无法连接错误消息,默认为通用消息。

public string ResponseError {
            get {
                string retVal = "";
                try { 
                    retVal = xmlElements.GetElementValue( FullResponse, "/VancoWS/Response/Errors/Error/ErrorDescription" ); 
                } catch {
                    retVal = "There has been a problem processing your request.  Please try again!";
                }
                return retVal;
            }
        }

支付网关称他们对SSL证书进行了更改,从那时起我们的Web应用程序就没有成功连接。代码是用VS.NET 2008 .NET 3.5编写的,我相信C#。从我所知道的,这看起来像是建立连接的代码:

/* Method to perform web post */
        private void SendBuffer(string strXml, out string fullResponse, out bool success)
        {

            String BaseAddress = Url + "?xml=";

            try
            {
                System.Net.WebClient objRequest = new System.Net.WebClient();
                objRequest.Encoding = System.Text.Encoding.ASCII;
                byte[] buffer = System.Text.Encoding.ASCII.GetBytes(strXml);

                byte[] responseBuffer = objRequest.UploadData(BaseAddress, "POST", buffer);

                fullResponse = System.Text.Encoding.ASCII.GetString(responseBuffer);
                success = true;
            }
        catch (Exception ex)
        {
            fullResponse = ex.ToString();
            success = false;
        }
        }

支付网关表示他们没有从我们的服务器到他们的服务器。我联系了webhost,他们说他们没有改变任何阻止连接的东西。

主持人说他们可以在没有无效证书的情况下访问网址。

有问题的网址:https://www.vancoservices.com/cgi-bin/ws2.vps

他们还在运行SSLv3,因此协议更改或强制使用TLS 1.x

不是问题

关于什么会破坏这个的任何想法?

3 个答案:

答案 0 :(得分:3)

看起来他们已经设置了一个证书,该证书未经有效授权机构签名,或者您的Web服务器没有在其受信任的CA中签署此证书的权限。

要了解证书是否存在问题,您可以尝试连接到正在执行此代码的Web服务器,打开Web浏览器并尝试连接到该地址。浏览器会告诉您证书是否有效(如果不是,您可能会收到警告)。

如果要在代码中禁用证书验证,可以尝试以下操作:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

显然,这不是您想要使用生产系统进行的操作,但您可以尝试使用它来了解它们设置的SSL证书是否存在问题以及是否自签名。

答案 1 :(得分:1)

"尝试"代码周围的子句隐藏了正在发生的任何错误。您可以尝试的一件事是注释掉try语句,允许代码中断并出现错误:

// try
{
    ...
}

或添加一个catch子句:

try
{
   ...
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

答案 2 :(得分:1)

只需在配置中添加以下内容即可更改日志文件路径。如果证书的握手/验证正在发生,这将有意义

http://msdn.microsoft.com/en-us/library/ty48b824(v=vs.110).aspx