You can also use Netcat to complete a TLS handshake and do a HTTP GET:
$ nc -cv bifrost.vivaldi.com 443
Connection to bifrost.vivaldi.com (31.209.137.10) 443 port [tcp/https] succeeded!
TLS handshake negotiated TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384 with host bifrost.vivaldi.com
Peer name: bifrost.vivaldi.com
Subject: /CN=bifrost.vivaldi.com
Issuer: /C=US/O=Let's Encrypt/CN=R10
Valid From: Mon Dec 23 06:49:08 2024
Valid Until: Sun Mar 23 06:49:07 2025
Cert Hash: SHA256:98525b0f9ace766ba349c06c1a87795bed11cb519b90645fcad05e2f7b87aae9
OCSP URL: http://r10.o.lencr.org
GET /vivid-sync HTTP/1.1
HTTP/1.0 400 Bad request
Cache-Control: no-cache
Connection: close
Content-Type: text/html
<html><body><h1>400 Bad request</h1>
Your browser sent an invalid request.
</body></html>
A Bad Request return code is of course expected at this point.
Same could be done with OpenSSL:
$ openssl s_client -connect bifrost.vivaldi.com:443
CONNECTED(00000004)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R10
verify return:1
depth=0 CN = bifrost.vivaldi.com
verify return:1
---
Certificate chain
0 s:CN = bifrost.vivaldi.com
i:C = US, O = Let's Encrypt, CN = R10
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: Dec 23 05:49:08 2024 GMT; NotAfter: Mar 23 05:49:07 2025 GMT
...
Start Time: 1735819494
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: yes
---
GET /vivid-sync HTTP/1.1
HTTP/1.0 400 Bad request
Cache-Control: no-cache
Connection: close
Content-Type: text/html
<html><body><h1>400 Bad request</h1>
Your browser sent an invalid request.
</body></html>
closed
But, my thought is this will not show you much except it works fine from the shell, but fails from all your browsers.