Полагаю, вы используете BasicHttpBinding
прямо сейчас, и вам нужно перейти с конечной точки HTTP на конечную точку HTTPS, которая требует проверки с помощью сертификата X509.Я предполагаю, что вы используете C #.
Если вы используете любую версию .NET Framework старше 4.5 , вы можете сделать:
var binding = new BasicHttpBinding(BasicHttpsSecurityMode.Transport);
Если вы используете .NET Framework 4.5 или более новую версию, вы можете сделать это следующим образом:
var binding = new BasicHttpsBinding();
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
Предполагая, что вы импортировали определение WebService, полученное из System.ServiceModel.ClientBase
(например, когда вы щелкаете правой кнопкой мыши по проекту вVisual Studio и выберите Add> Service Reference), вы можете сделать что-то вроде этого:
var address = new EndpointAddress(serviceUrl);
var wsClient = new ServiceReference1.YourServiceClient(binding, address);
// x509Cert is a variable of type 'X509Certificate2'.
wsClient.ClientCredentials.ClientCertificate.Certificate = x509Cert;
// Take a look at: https://stackoverflow.com/a/49303859/
wsClient.Open();
wsClient.CallTheService();
wsClient.Close();