Skip to content

Basic HTTPS requests don't work on Windows #163

@zorael

Description

@zorael

Windows x86_64, dmd 2.107-beta.1. requests is version 2.1.2.

Even the most basic of requests will fail against HTTPS addresses on Windows.

import requests;

void main()
{
    auto content = getContent("https://httpbin.org/");
}
object.Exception@C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\streams.d(890): ssl connect failed: certificate verify failed
----------------
0x00007FF77E297EF7 in d_throwc
0x00007FF77E182B7E in requests.streams.OpenSslSocket.connect at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\streams.d(890)
0x00007FF77E18400D in requests.streams.SocketStream.connect at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\streams.d(1115)
0x00007FF77E18366A in requests.streams.SSLSocketStream.connect at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\streams.d(988)
0x00007FF77E175232 in requests.http.HTTPRequest.setupConnection at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\http.d(708)
0x00007FF77E17C1F1 in requests.http.HTTPRequest.exec_from_parameters at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\http.d(2193)
0x00007FF77E17E045 in requests.http.HTTPRequest.execute at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\http.d(2415)
0x00007FF77E157DF1 in requests.request.Request.LastInterceptor.opCall at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\request.d(499)
0x00007FF77E17FE30 in requests.request.RequestHandler.handle at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\request.d(184)
0x00007FF77E15918F in requests.request.Request.execute at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\request.d(631)
0x00007FF77E15830F in requests.request.Request.get at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\request.d(528)
0x00007FF77E151D68 in requests.getContent at C:\Users\dhiar\AppData\Local\dub\packages\requests\2.1.2\requests\source\requests\package.d(498)
0x00007FF77E150C19 in D main at C:\Users\dhiar\src\tests\reqtest\source\app.d(5)
0x00007FF77E2C03B3 in void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).runAll().__lambda2()
0x00007FF77E2C01AF in void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).tryExec(scope void delegate())
0x00007FF77E2C02CF in void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).runAll()
0x00007FF77E2C01AF in void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).tryExec(scope void delegate())
0x00007FF77E2BFF7A in d_run_main2
0x00007FF77E294CD9 in d_run_main
0x00007FF77E1512E2 in app._d_cmain!().main at C:\D\dmd2\windows\bin64\..\..\src\druntime\import\core\internal\entrypoint.d(29)
0x00007FF77E387B6C in __scrt_common_main_seh at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(288)
0x00007FFA2EA6257D in BaseThreadInitThunk
0x00007FFA2F96AA58 in RtlUserThreadStart
Error Program exited with code 1

arsd.http seemingly imports certificates from the Windows registry.

X509_STORE* function(SSL_CTX*) SSL_CTX_get_cert_store;

void function (SSL_CTX *ctx, int function(SSL *ssl, X509 **x509, EVP_PKEY **pkey)) SSL_CTX_set_client_cert_cb;

https://github.com/adamdruppe/arsd/blob/614e15fc9a7e5998b6272398c8220434a900eb01/http2.d#L5868-L5921

The repository doesn't say, but the code.dlang.org package page says it's licensed under Boost.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions