如何绕过 tibco EMS .NET 的证书验证 API
How to Bypassing the certificate validation for tibco EMS .NET API
我正在尝试使用 ssl (ssl://host:port) 连接 tibco 服务器,但我们需要绕过证书验证。
在Java中有一个API可用,例如
System.setProperty(BaseClient.TIBCO_STATSVCS_SSL_ALLOW_ANY_CERTIFICATE, "true");
我们需要 .Net 中的相同功能 API。
试试这个
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
编辑:
通过更改 ServerCertificateValidationCallback,您可以更改接受证书(return true)或不接受(return false)的逻辑
此代码只是跳过证书验证:任何证书都将被接受
你当然可以添加更多的逻辑。
您需要创建自己的处理程序,这是一个与委托定义相同inputs/output的方法:
public delegate bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors);
因此,例如:
public static bool MyCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) {
//whatever
}
public static void Main() {
System.Net.ServicePointManager.ServerCertificateValidationCallback = MyCertificateValidationCallback;
}
我正在尝试使用 ssl (ssl://host:port) 连接 tibco 服务器,但我们需要绕过证书验证。
在Java中有一个API可用,例如
System.setProperty(BaseClient.TIBCO_STATSVCS_SSL_ALLOW_ANY_CERTIFICATE, "true");
我们需要 .Net 中的相同功能 API。
试试这个
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
编辑: 通过更改 ServerCertificateValidationCallback,您可以更改接受证书(return true)或不接受(return false)的逻辑 此代码只是跳过证书验证:任何证书都将被接受
你当然可以添加更多的逻辑。
您需要创建自己的处理程序,这是一个与委托定义相同inputs/output的方法:
public delegate bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors);
因此,例如:
public static bool MyCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) {
//whatever
}
public static void Main() {
System.Net.ServicePointManager.ServerCertificateValidationCallback = MyCertificateValidationCallback;
}