簡體   English   中英

在服務器上更改SSL證書是否會破壞代碼?

[英]Does changing SSL Cert on a server break code?

編輯:我應該用什么來捕捉錯誤?

我有它無法連接到錯誤消息的地方,並且默認為通用消息。

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;
        }
        }

付款網關說他們沒有從我們的服務器獲得任何連接。 我聯系了網絡托管服務商,他們說他們沒有做任何更改來阻止連接。

主持人說,他們可以在沒有無效證書的情況下正常訪問URL。

有問題的網址: https : //www.vancoservices.com/cgi-bin/ws2.vps

他們還仍在運行SSLv3,因此協議更改或強制使用TLS 1.x都不成問題。

有什么想法可以解決這個問題嗎?

看起來他們已經設置了未由有效授權機構簽名的證書,或者您的Web服務器沒有在受信任的CA中對該證書進行簽名的授權機構。

要了解證書是否存在問題,您可以嘗試連接到正在執行此代碼的Web服務器,打開Web瀏覽器,然后嘗試連接到該地址。 瀏覽器將告訴您證書是否有效(如果證書無效,您可能會收到警告)。

如果要在代碼中禁用證書驗證,則可以嘗試以下操作:

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

顯然,這不是您要在生產系統上要做的事情,但是您可以嘗試使用它來了解他們設置的SSL證書是否有問題以及它是否是自簽名的。

代碼周圍的“ try”子句隱藏了所有正在發生的錯誤。 您可以嘗試做的一件事是注釋掉try語句,以使代碼因錯誤而中斷和崩潰:

// try
{
    ...
}

或添加一個catch子句:

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

只需將以下內容添加到您的配置並更改日志文件路徑。 如果正在進行握手/驗證,這將給人一種感覺

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

暫無
暫無

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

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