我正在寻找一种使用VB.NET验证(或绕过验证)自签名SSL证书的方法。我在C#中找到了这样的代码,并尝试将其转换为VB代码,但没有成功。
以下是C#代码:How do I use WebRequest to access an SSL encrypted site using https?
以下是我尝试过的内容:
Imports System
Imports System.Net
Imports System.Security.Cryptography.X509Certificates
Public Class clsSSL
Public Function AcceptAllCertifications(ByVal sender As Object, ByVal certification As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal chain As System.Security.Cryptography.X509Certificates.X509Chain, ByVal sslPolicyErrors As System.Net.Security.SslPolicyErrors) As Boolean
Return True
End Function
End Class
在使用WebRequest
之前,我有一行代码导致了一个错误。
ServicePointManager.ServerCertificateValidationCallback =
New System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications)
错误信息如下:
委托 'System.Net.Security.RemoteCertificateValidationCallback' 需要一个“AddressOf”表达式或者 lambda 表达式作为其构造函数的唯一参数。
AcceptAllCertifications
没有接受自签名证书。它接受所有证书,甚至是恶意站点和攻击者的证书。你应该接受已知的证书。请参见我的答案。 - Martin Prikryl