Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. https://crt.sh/?q=example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.
My domain is:
tuttopepe.saltalafila.online
I ran this command: https://tuttopepe.saltalafila.online
and
curl 'https://tuttopepe.saltalafila.online/api/v1/articles/array'
It produced unexpected results:
the http request return the warning page (Firefox 78)
Then examining the certificates, the validities are all proper.
10/7/21 => 1/5/2022
9/4/2020 => 9/15/2025 R3
1/20/2021 => 9/30/2024 ISRG ROOT X1
Sequence of actions:
Since the auto-renew had not kicked in (I've seen this behaviour a few times now, has something changed?) and I did it manually, without re-directing via lets encrypt (it is already in the sites-enabled/salalafila file) . I did it twice as I missed a sub-domain the first time round.
. I also noticed that sudo service nginx restart does not kick in and I had to reboot the server to make that command pass (and ensure changes were effectively loaded by nginx) - *this inability to restart nginx without rebooting the server is also recent behaviour..
Then I wondered if the certificates would conflict and therefore re-ran
sudo certbot --nginx -d tuttopepe.saltalafila.online -d artaterme.saltalafila.online -d arta.saltalafila.online -d api.saltalafila.online
this time with option 2 (redirect 80 to 443). and sudo service nginx restart would run.
It looks to me like your curl is not using the system CA certificate store. My guess is that the store it is using does not contain ISRG Root X1. Are you using a global .curlrc config which changes the cert store? I am not sure where the .curlrc file is on Ubuntu - you will have to search.
Also, you can override that config by doing something like:
The reason I suspect curl is faulty is because you were able to renew your certificates. So, the system CA store seems correct otherwise certbot would fail and it looks like just curl is using wrong store.
For reference, here is the result of my curl to your site - but note the name of the CA cert file is different as I am on Amazon Linux 2 with curl version 7.76.1.
Did it update anything?
Please show the output (to see the versions).
To compare with:
ca-certificates is already the newest version (20210119~18.04.2).
libcurl3-gnutls is already the newest version (7.58.0-2ubuntu3.16).
libcurl4 is already the newest version (7.58.0-2ubuntu3.16).
openssl is already the newest version (1.1.1-1ubuntu2.1~18.04.13).
ca-certificates is already the newest version (20210119~20.04.2).
libcurl3-gnutls is already the newest version (7.68.0-1ubuntu2.7).
libcurl3-gnutls set to manually installed.
libcurl4 is already the newest version (7.68.0-1ubuntu2.7).
libcurl4 set to manually installed.
openssl is already the newest version (1.1.1f-1ubuntu2.8).
openssl set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.`
And it just keeps getting weirder and weirder...
The first is from "DST Root CA X3" and is expected to have been removed.
The second is from "ISRG Root X1" and is expected to have been included.
And the site uses:
---
Certificate chain
0 s:CN = tuttopepe.saltalafila.online
i:C = US, O = Let's Encrypt, CN = R3
1 s:C = US, O = Let's Encrypt, CN = R3
i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
So it should have been trusted.
You can get connected without verifying the chain...
You can't trust the chain that is trusted by a very similar system...