Skip to content

HTTPS Get throws IOException on ARM #27910

@schnappviech

Description

@schnappviech

I'm using NET Core 2.1 on an ARM system. Normal HTTP connections do work, but a HTTPS Get will throw an IOException. Root certificates from https://curl.haxx.se/docs/caextract.html are installed to store root.

Dotnet

dotnet --info

Host (useful for support):
  Version: 2.1.6
  Commit:  3f4f8eebd8

.NET Core SDKs installed:
  No SDKs were found.

.NET Core runtimes installed:
  Microsoft.NETCore.App 2.1.6 [/media/maps/dotnet/shared/Microsoft.NETCore.App]

Program.cs

    using System;
    using System.Net.Http;
    
    namespace TlsTest
    {
        internal class Program
            {
            static void Main()
            {
                var client = new HttpClient();
                HttpResponseMessage resp;

                resp = client.GetAsync("http://httpbin.org/").Result;
                Console.WriteLine(resp.ToString());

                resp = client.GetAsync("https://httpbin.org/").Result;
                Console.WriteLine(resp.ToString());
            }
        }
    }

Output

    StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.HttpConnection+HttpConnectionResponseContent, Headers:
    {
      Connection: keep-alive
      Server: gunicorn/19.9.0
      Date: Wed, 14 Nov 2018 16:40:46 GMT
      Access-Control-Allow-Origin: *
      Access-Control-Allow-Credentials: true
      Via: 1.1 vegur
      Content-Type: text/html; charset=utf-8
      Content-Length: 10122
    }
    Unhandled Exception: System.AggregateException: One or more errors occurred. (An error occurred while sending the request.) ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.IOException: The server returned an invalid or unrecognized response.
       at System.Net.Http.HttpConnection.FillAsync()
       at System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(Boolean foldedHeadersAllowed)
       at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
       --- End of inner exception stack trace ---
       at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
       at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
       at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
       at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
       at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
       --- End of inner exception stack trace ---
       at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
       at System.Threading.Tasks.Task`1.get_Result()
       at TlsTest.Program.Main()
    Aborted

Wireshark Dump of HTTPS connection

dump.https.pcap.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions