Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
swift week + discount 30

Diskuze: Http authentikace s neplatm SSL certifikátem

Aktivity
Avatar
Šimon Lakosil:13.5.2021 13:48

Ahojte,

mám webovou aplikaci, která má nevalidní SSL certifikát a HTTP přihlášením.
Příklad:
Otevřu prohlížeč na URL https://ip:8443/help
Vidím, že je certifikát nevalidní, ale stránka se normálně otevře.
Teď bych potřeboval, aby ten stejný požadavek vykonal můj HTTP client v .net core aplikaci.

Zkusil jsem: Vyzkoušel jsem snad úplně všechny možnosti ze stackoverflow.
Vždyky to bylo něco na tento styl:

public async Task<string> LoadCoreHelp()
       {
           string url = "https://ip:8443/help";

           HttpClientHandler clientHandler = new HttpClientHandler();
           clientHandler.ServerCertificateCustomValidationCallback = (
               sender, cert, chain, sslPolicyErrors) => { return true; };
           clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual;

           HttpClient client = new HttpClient(clientHandler);

           HttpResponseMessage response = await client.GetAsync(url);

           return await response.Content.ReadAsStringAsync();
       }

Vždy dostanu chybu:

Unhandled exception. System.Net.Http­.HttpRequestEx­ception: The SSL connection could not be established, see inner exception.
---> System.Securi­ty.Authentica­tion.Authenti­cationExcepti­on: Authentication failed, see inner exception.
---> Interop+OpenSsl+SslEx­ception: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.
---> Interop+Crypto+O­penSslCryptograp­hicException: error:14094410:SSL routines:ssl3_re­ad_bytes:sslv3 alert handshake failure
--- End of inner exception stack trace ---
at Interop.OpenSsl­.DoSslHandsha­ke(SafeSslHan­dle context, ReadOnlySpan`1 input, Byte[]& sendBuf, Int32& sendCount)
at System.Net.Se­curity.SslStre­amPal.Handsha­keInternal(Sa­feFreeCredenti­als credential, SafeDeleteSslCon­text& context, ReadOnlySpan`1 inputBuffer, Byte[]& outputBuffer, SslAuthentica­tionOptions sslAuthentica­tionOptions)
--- End of inner exception stack trace ---
at System.Net.Se­curity.SslStre­am.ForceAuthen­ticationAsyncTI­OAdapter
at System.Net.Http­.ConnectHelper­.EstablishSslCon­nectionAsyncCo­re(Boolean async, Stream stream, SslClientAuthen­ticationOptions sslOptions, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http­.ConnectHelper­.EstablishSslCon­nectionAsyncCo­re(Boolean async, Stream stream, SslClientAuthen­ticationOptions sslOptions, CancellationToken cancellationToken)
at System.Net.Http­.HttpConnecti­onPool.Connec­tAsync(HttpRe­questMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http­.HttpConnecti­onPool.CreateH­ttp11Connecti­onAsync(HttpRe­questMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http­.HttpConnecti­onPool.GetHttpCon­nectionAsync(HttpRe­questMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http­.HttpConnecti­onPool.SendWit­hRetryAsync(HttpRe­questMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http­.RedirectHandler­.SendAsync(HttpRe­questMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http­.HttpClient.Sen­dAsyncCore(HttpRe­questMessage request, HttpCompletio­nOption completionOption, Boolean async, Boolean emitTelemetryS­tartStop, CancellationToken cancellationToken)
at McAfee.Connec­tor.EPo._5._10­.RestApi.McAfe­eEpoRestApiCon­nector.LoadCo­reHelp() in /home/jan/Rider­Projects/McAfe­eEpoAutomatiza­tion2/McAfee.Con­nector/EPo/5.10/Res­tApi/McAfeeEpo­RestApiConnec­tor.cs:line 53
at Automatization­Configuration­Checker.Task.McA­fee.core.EPoAu­thenticationChec­k.Do() in /home/jan/Rider­Projects/McAfe­eEpoAutomatiza­tion2/McAfeeE­poAutomatizati­onConfigurati­onChecker/Tas­k/McAfee/core/E­PoAuthenticati­onCheck.cs:li­ne 17
at Automatization­Configuration­Checker.Impl.McA­fee._5._10.Con­figurationChec­ker.Run() in /home/jan/Rider­Projects/McAfe­eEpoAutomatiza­tion2/McAfeeE­poAutomatizati­onConfigurati­onChecker/Impl/McA­fee/5.10/Confi­gurationChecker­.cs:line 22
at McAfeeEpoAuto­matization2.Star­tup.Run(CLIOp­tions options) in /home/jan/Rider­Projects/McAfe­eEpoAutomatiza­tion2/McAfeeE­poAutomatizati­on2/Startup.cs:li­ne 28
at CommandLine.Par­serResultExten­sions.WithPar­sedAsyncT
at McAfeeEpoAuto­matization2.Pro­gram.Main(Strin­g[] args) in /home/jan/Rider­Projects/McAfe­eEpoAutomatiza­tion2/McAfeeE­poAutomatizati­on2/Program.cs:li­ne 47
at McAfeeEpoAuto­matization2.Pro­gram.<Main>(Strin­g[] args)

Chci docílit: Viz výše.

Už nemám sebemenší tušení, co bych vyzkoušel.
Měli byste někdo nějaký nápad prosím ?

Děkuji

 
Odpovědět
13.5.2021 13:48
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Šimon Lakosil
Šimon Lakosil:13.5.2021 13:59

Ještě bych dodal.
Používám Ubuntu 20.04

Pokud použiji příkaz curl -k url. Tak taky dostanu normálně odpověď. Nejede to fakt jenom z C#. -k je pro nevalidování certifikátu.

 
Nahoru Odpovědět
13.5.2021 13:59
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.