Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 830224 - app-misc/ca-certificates missing CN=GlobalSign RSA OV SSL CA 2018,O=GlobalSign nv-sa,C=BE
Summary: app-misc/ca-certificates missing CN=GlobalSign RSA OV SSL CA 2018,O=GlobalSig...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL: https://biblio.brussels/iguana/Proxy....
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-12-29 11:04 UTC by Stefan de Konink
Modified: 2021-12-29 21:52 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan de Konink 2021-12-29 11:04:58 UTC
I have noticed that the connection in both firefox as chromium work without certificate issues for the URL https://biblio.brussels/iguana/Proxy.SearchRequest.cls

Behind this is the intermediate certificate which results in errors in tools like wget and curl. "Unable to locally verify the issuer's authority.", "curl: (60) SSL certificate problem: unable to get local issuer certificate"

 1 s:C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018
   i:OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign

What is the best upstream candidate to address these issues? This fails on Ubuntu as well. Would this be dev-libs/nss?

Reproducible: Always
Comment 1 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2021-12-29 18:42:03 UTC
The site you are connected to has misconfigured their servers. It just happens to work in Chrome because Google ships some intermediate certificates as well as root certificates.

The server right now hands out ONE certificate:
Certificate chain
 0 s:C = BE, ST = Brussels-Capital Region, L = Brussels, O = ASBL i-CITY VZW, CN = *.biblio.brussels
   i:C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018

It should ALSO be providing this intermediate:
Issuer: OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign
Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign RSA OV SSL CA 2018
As seen here:
https://www.tbs-certificates.co.uk/FAQ/en/gsrsaovsslca2018.html

If you wanted to get that intermediate introduced, it would be the Mozilla NSS team (but I think they are unlikely to agree to do that).

If you wanted to contact the Library, I don't know where best, but irisline@cirb.irisnet.be might work, based on the IP WHOIS data.
Comment 2 Stefan de Konink 2021-12-29 19:57:19 UTC
Dear Robin, thanks for your elaborative answer. When I requested the website with OpenSSL I ended up with three certificates;

openssl s_client -showcerts -servername server -connect biblio.brussels:443 > /tmp/cacert.pem

depth=2 OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018
verify return:1
depth=0 C = BE, ST = R\C3\A9gion de Bruxelles-Capitale, L = Bruxelles, O = ASBL GIAL / i-City VZW, CN = *.gial.be
verify return:1
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2021-12-29 21:50:53 UTC
(In reply to Stefan de Konink from comment #2)
> Dear Robin, thanks for your elaborative answer. When I requested the website
> with OpenSSL I ended up with three certificates;
> 
> openssl s_client -showcerts -servername server -connect biblio.brussels:443
> > /tmp/cacert.pem
> 
> depth=2 OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
> verify return:1
> depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018
> verify return:1
> depth=0 C = BE, ST = R\C3\A9gion de Bruxelles-Capitale, L = Bruxelles, O =
> ASBL GIAL / i-City VZW, CN = *.gial.be
> verify return:1

(I'm on the base-system alias, you don't need to notify me directly).

Your "-servername server" block triggers their system to provide the default certificate, which is correctly configured with the intermediate, but doesn't help your problem.

====
$ COMMON="openssl s_client -connect biblio.brussels:443 "
# Capture the certs for both ServerName inputs:
$ false | $COMMON -showcerts -servername biblio.brussels >certs-biblio.brussels
$ false | $COMMON -showcerts -servername server >certs-server
# Compare the sizes trivially
$ ls -la certs-biblio.brussels certs-server 
-rw-r--r-- 1 robbat2 users 3736 2021-12-29 13:43 certs-biblio.brussels
-rw-r--r-- 1 robbat2 users 6719 2021-12-29 13:43 certs-server

# Compare the OpenSSL behavior:
# firstly, with the correct ServerName input, it returns the certs without the intermediate, so it's not usable
$ false | $COMMON -verify_return_error -servername biblio.brussels
CONNECTED(00000003)
depth=0 C = BE, ST = Brussels-Capital Region, L = Brussels, O = ASBL i-CITY VZW, CN = *.biblio.brussels
verify error:num=20:unable to get local issuer certificate
140088237438784:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1914:
...


# Then, send some OTHER ServerName that does not match the SNI rules on the server side:
# It returns the *default* certificate on that host, and along with the CORRECT intermediate.
# That default certificate is for *.gial.be, which also doesn't match the biblio.brussels name.
$ false | $COMMON -verify_return_error -servername server
CONNECTED(00000003)
depth=2 OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018
verify return:1
depth=0 C = BE, ST = R\C3\A9gion de Bruxelles-Capitale, L = Bruxelles, O = ASBL GIAL / i-City VZW, CN = *.gial.be
verify return:1
---
Certificate chain
 0 s:C = BE, ST = R\C3\A9gion de Bruxelles-Capitale, L = Bruxelles, O = ASBL GIAL / i-City VZW, CN = *.gial.be
   i:C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018
 1 s:C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018
   i:OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
 2 s:OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
   i:OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
---

====
Comment 4 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2021-12-29 21:52:49 UTC
Actually, I realize their default one is also slightly misconfigured: it served the self-signed CA cert as well, which isn't needed (and is a mis-configuration in some cases).