0
全部 - 我寫了一個dotnet核心API集,在Windows上完美運行。在Ubuntu 14.04上,除了向使用客戶端證書進行身份驗證的供應商提供的一個SOAP請求外,其他所有功能都可以使用Ubuntu上的Dotnet Core客戶端證書
請求總是超時。 Netstat跟蹤顯示只有1個字節的數據在443被髮送到遠程服務。沒有任何通信發生了100秒,然後應用程序拋出超時異常。
我已經嘗試使用openssl導出PEM和CRT文件,並引用除了代碼現在配置的方式(pfx w/password)之外的那些。我還將PFX的證書部分加載到ca-certs中。
下面的代碼:
var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
var baseAddress = new Uri(mySettings.ClientUrl);
factory = new ChannelFactory<SingleSignOnSoap>(binding, new EndpointAddress(baseAddress));
if (RuntimeEnvironment.OperatingSystemPlatform == Platform.Windows)
{
//windows file location
factory.Credentials.ClientCertificate.Certificate = new X509Certificate2(mySettings.PrivateKeyWindowsPath, mySettings.PfxPass);
}
else
{
//linux file location
factory.Credentials.ClientCertificate.Certificate = new X509Certificate2(mySettings.ClientPrivateKeyUnixPath, mySettings.PfxPass);
}
serviceProxy = factory.CreateChannel();
RequestTicketRequest request = new RequestTicketRequest();
RequestTicketRequestBody requestBody = new RequestTicketRequestBody(xmlRequest);
request.Body = requestBody;
RequestTicketResponse response = serviceProxy.RequestTicket(request);
return response.Body.RequestTicketResult;
我沒有在代碼中包括它,但URL確實使用https:// – mwdavisii
也嘗試使用BasicHttpsBinding無濟於事 – mwdavisii