.net中的HTTPS和SSL握手问题和事件日志致命警报80

时间:2014-12-23 02:00:30

标签: vb.net ssl

我正在使用在VS2005下运行的vb6代码。这是基于Windows的应用程序。

问题:在客户端计算机上应用了一些Microsoft安全修补程序更新。这些补丁程序应用程序未运行之后。当我们删除补丁时,应用程序运行正常。

应用程序正在访问远程服务以进行身份​​验证和其他服务调用(第三方)。

完成以下步骤

  1. 当我运行应用程序时,事件日志中出现错误:
  2.   Fatal alert:80
    
    1. 我使用了fiddler工具我收到了像HTTPS握手问题的响应消息。证书问题。我不明白这一点。因为应用程序运行很长时间没有任何问题。

    2. 我在Microsoft论坛中阅读了相关文章:根据我的调查,我们发现事件日志错误致命警报:80在安装新补丁后以某种方式与证书过期有关。 (http://answers.microsoft.com/en-us/windows/forum/windows_other-windows_update/kb2992611-and-schannel-internalerror-during/20b3270b-45e3-4002-8f31-8bd0430ba080

    3. 我尝试了最好的级别来实现绕过证书验证,但也没有按预期工作

    4. 配置级别

      添加了证书检查错误等设置。但没用“

      代码级别 第1步登录页面:登录按钮 System.Net.ServicePointManager.CertificatePolicy = New GEPUIS_MTS_Objects.trustedCertificatePolicy

      步骤2:检查调用服务名称和服务器详细信息的身份验证

      在此方法中调用此方法check_authentication()将用户标识和密码传递给第三方

      Method check_authentication()
      {
         MTS_Objects.authenticate(sUserID, sPassword)
      try
          MTS_Objects.Author(sUserID, sPassword, SAppl, ServerName)
      }
      
      
      Public Sub authenticate(ByVal user As String, ByVal password As String)
              Dim filter As OmniSwitchOutputFilter
              Dim coll As SoapOutputFilterCollection
              filter = New OmniSwitchOutputFilter(user, password)
              coll = WebServicesConfiguration.FilterConfiguration.OutputFilters
              coll.Clear()
              coll.Add(filter)
          End Sub
      
      
        Public Sub Author(ByVal user As String, ByVal password As String, ByVal MyAppl As String, ByVal serverName As String)
              Dim InputUser As New com.XXXX.XXX.XXXX.soap.UserSecurity.UserAuth_T()
              Dim MyHeader As New com.XXXX.XXX.XXXX.soap.UserSecurity.Header_T()
              Dim authManager As AuthManager
              Dim url As Uri
              Dim principal As System.Security.Principal.GenericPrincipal
      
              Select Case serverName
      
                  Case "UNIT RE (XXXX)"
                      'url = New Uri("https://XXXX.z.XXX.XXXX.com:portnumber/is2/AuthService")
                      url = New Uri(ConfigurationManager.AppSettings("UNITRE").ToString())
      
              End Select
              **authManager = New AuthManager(url)**
              Try
                  **principal = authManager.authenticate(user, password, "")**
      
              Catch ex As TransportException
                  Throw New Exception("TransportException occured: " + ex.Message)
              Catch ex As AuthManagerException
                  Throw New Exception("AuthManagerException occured: " + ex.Message)
              Catch ex As System.Exception
                  Throw New Exception("Exception occured: " + ex.Message)
              End Try
      
              Dim x As ISFIdentity
              x = principal.Identity
          End Sub
      End Module
      

      调用此方法authManager.authenticate(user,password,“”)此方法传递给下面的c。类。我们可以调用以下方法获得True,并且无需修补机器就可以获得清晰的证书信息。我无法在TEST机器中调试,因为我没有VS。

      Imports System
      Imports System.Net
      
      Public Class trustedCertificatePolicy
          Implements ICertificatePolicy
          Public Sub trustedCertificatePolicy()
      
          End Sub
      
          Public Function CheckValidationResult(ByVal srvPoint As ServicePoint, ByVal cert As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal request As WebRequest, ByVal problem As Integer) As Boolean Implements ICertificatePolicy.CheckValidationResult
      
              Return True
          End Function
      
      End Class
      

      请求将调用CheckValidationResult方法,但我没有得到响应。

      我正在使用CORBA服务。根据大型机团队,他们无法看到应用程序的请求。

      这是只读应用程序。我可以在没有修补机的情况下运行此应用程序。这是在Windows 2007操作系统下运行。

      这只是我可以从我的结尾提供输入。这个问题我将面临10天。

      可能是证书问题。但是否有可能绕过证书验证。

0 个答案:

没有答案