all - Windows上で完全に機能するdotnetコアAPIセットを作成しました。 Ubuntu 14.04では、認証にクライアント証明書を使用するベンダーに対する1つのSOAPリクエストを除いてすべてが動作します。UbuntuのDotnet Coreのクライアント証明書
要求は常にタイムアウトします。 Netstatトレースは、443でリモートサービスに1バイトのデータしか送信されなかったことを示しています。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