luvit/luvit

`https-client` test failing

squeek502 opened this issue · 3 comments

Happens in CI and I can reproduce it locally. Happens with both Luvi 2.12.0 and latest master version of Luvi. Not sure what changed, could be something to do with https://luvit.io which is what the test is sending a request to?

# Starting Test: https-client
  /home/ryan/Programming/luvit/luvit/tests/libs/tap.lua:83: Missing 1 expected call
  stack traceback:
  	[C]: in function 'error'
  	/home/ryan/Programming/luvit/luvit/tests/libs/tap.lua:83: in function </home/ryan/Programming/luvit/luvit/tests/libs/tap.lua:64>
  	[C]: in function 'xpcall'
  	/home/ryan/Programming/luvit/luvit/tests/libs/tap.lua:64: in function 'run'
  	/home/ryan/Programming/luvit/luvit/tests/libs/tap.lua:165: in function </home/ryan/Programming/luvit/luvit/tests/libs/tap.lua:142>
  	...ryan/Programming/luvit/luvit/tests/test-https-client.lua:21: in function 'fn'
  	[string "bundle:deps/require.lua"]:310: in function 'require'
  	/home/ryan/Programming/luvit/luvit/main.lua:128: in function </home/ryan/Programming/luvit/luvit/main.lua:20>
not ok 1 https-client
#1 failed test

Some debugging:

  • The expected call that's missing is the main callback passed to https.request
  • Adding:
    req:on('error', function(...)
      p(...)
    end)

to the test gives:

{ message = 'certificate has expired' }

Chrome likes the cert:
image
Curl also likes it:

* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=luvit.io
*  start date: Nov 17 23:22:42 2021 GMT
*  expire date: Feb 15 23:22:41 2022 GMT
*  subjectAltName: host "luvit.io" matched cert's "luvit.io"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use

But luvit doesn't like it:
image

My local luvit's ssl version seems fine: ssl version: OpenSSL 1.1.1g 21 Apr 2020, lua-openssl 0.7.8

Super weird!

Root certs need updating.

I also added a script to document the process.