"unable to get issuer certificate" on ISRG Root X1 ()

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. crt.sh | 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:
lylyanne.tv

I ran this command:
It produced this output:

root@lylyanne:~# openssl verify /etc/letsencrypt/live/lylyanne.tv/cert.pem
CN = lylyanne.tv
error 20 at 0 depth lookup: unable to get local issuer certificate
error /etc/letsencrypt/live/lylyanne.tv/cert.pem: verification failed
root@lylyanne:~# openssl verify /etc/letsencrypt/live/lylyanne.tv/fullchain.pem
CN = lylyanne.tv
error 20 at 0 depth lookup: unable to get local issuer certificate
error /etc/letsencrypt/live/lylyanne.tv/fullchain.pem: verification failed
root@lylyanne:~# openssl verify -CAfile /etc/letsencrypt/live/lylyanne.tv/fullchain.pem /etc/letsencrypt/live/lylyanne.tv/cert.pem
C = US, O = Internet Security Research Group, CN = ISRG Root X1
error 2 at 2 depth lookup: unable to get issuer certificate
error /etc/letsencrypt/live/lylyanne.tv/cert.pem: verification failed

My web server is (include version):

The operating system my web server runs on is (include version):
Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-52-generic x86_64)
My hosting provider, if applicable, is:
racknerd

I can login to a root shell on my machine (yes or no, or I don't know):
yes
I'm using a control panel to manage my site (no, or provide the name and version of the control panel):
no
The version of my client is (e.g. output of certbot --version or certbot-auto --version if you're using Certbot):
certbot 1.21.0

What are you using openssl verify for?

A slightly more correct way to use the command is here, but it might help to understand what you're doing because there's probably a much better solution.

4 Likes

Hi,

I wanted to check if my files are valid

root@lylyanne:~# openssl verify -untrusted /etc/letsencrypt/live/lylyanne.tv/fullchain.pem /etc/letsencrypt/live/lylyanne.tv/cert.pem
/etc/letsencrypt/live/lylyanne.tv/cert.pem: OK
root@lylyanne:~# openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt /etc/letsencrypt/live/lylyanne.tv/cert.pem
CN = lylyanne.tv
error 20 at 0 depth lookup: unable to get local issuer certificate
error /etc/letsencrypt/live/lylyanne.tv/cert.pem: verification failed

I'm getting complaints from ejabberd that they're signed with an unknown CA

@ejabberd_pkix:log_warnings/1:393 Invalid certificate in /etc/letsencrypt/live/lylyanne.tv-0001/fullchain.pem: at line 63: certificate is signed by unknown CA

I suspect this is the cause, outdated ca-certificates

root@lylyanne:~# dpkg -l ca-certificates
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name            Version      Architecture Description
+++-===============-============-============-=================================
ii  ca-certificates 20211016     all          Common CA certificates

But I've already run apt update ; apt upgrade -y and it's still on that old version ?

On Ubuntu 22.04 this works for me:

openssl verify -untrusted /etc/letsencrypt/live/lylyanne.tv-0001/chain.pem /etc/letsencrypt/live/lylyanne.tv-0001/cert.pem

Have you set the ca_file option? Maybe to /etc/ssl/certs/ca-certificates.crt?

That's new enough.

3 Likes

I added to ejabberd.yml

ca_file: "/etc/ssl/certs/ca-certificates.crt"

Server still works, however this had no effect, server sees certification as invalid

root@lylyanne:/opt/ejabberd# openssl verify -untrusted /etc/letsencrypt/live/lylyanne.tv-0001/chain.pem /etc/letsencrypt/live/lylyanne.tv-0001/cert.pem
/etc/letsencrypt/live/lylyanne.tv-0001/cert.pem: OK

but this doesn't

root@lylyanne:/opt/ejabberd# openssl verify /etc/letsencrypt/live/lylyanne.tv-0001/cert.pem
CN = lylyanne.tv
error 20 at 0 depth lookup: unable to get local issuer certificate
error /etc/letsencrypt/live/lylyanne.tv-0001/cert.pem: verification failed

Could it be that I'm affected by this problem ?

This command won't ever succeed because you need to provide the intermediate certificate via -untrusted.

If you are, it's going to be something specific about the way ejabberd is doing certificate verification. You might have better luck asking this question on their community. There's nothing wrong with the certificate you have, as you can see by the openssl verify command that succeeds.

4 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.