I have several IRC servers I connect to that are currently using Let's Encrypt certificates, and I guess because they're not sending the entire trust chain with their connection requests, I get untrusted certificate notices every 2 months as they replace their certificates with new ones a month or so before the old ones expire. I end up having to add a new fingerprint every two months or so.
Is there something I can tell these server administrators about configuring their services properly with Let's Encrypt? Or is this a ZNC bug?
I have several IRC servers I connect to that are currently using Let's Encrypt certificates, and I guess because they're not sending the entire trust chain with their connection requests, I get untrusted certificate notices every 2 months as they replace their certificates with new ones a month or so before the old ones expire. I end up having to add a new fingerprint every two months or so.
Is there something I can tell these server administrators about configuring their services properly with Let's Encrypt? Or is this a ZNC bug?
<!-- github-sync-id:295386833 -->
> and I guess because they're not sending the entire trust chain with their connection requests
You can verify that hypothesis using `openssl s_client`:
```
$ openssl s_client -showcerts -connect irc.badssl.com:6667 < /dev/null
```
<!-- github-comment-id:364004879 -->
FWIW, the latest certbot version generates the following files and descriptions:
`fullchain.pem`: the certificate file used in most server software.
`cert.pem` : will break many server configurations, and should not be used
without reading further documentation (see link below).
So not using fullchain.pem is probably a mis-configuration that ought to be fixed server-side.
You could probably work around it locally by importing the Let's Encrypt intermediary certificate to your trusted root certificates store.
(The above is not an authoritative answer; I might be completely wrong.)
FWIW, the latest `certbot` version generates the following files and descriptions:
```
`fullchain.pem`: the certificate file used in most server software.
`cert.pem` : will break many server configurations, and should not be used
without reading further documentation (see link below).
```
So not using `fullchain.pem` is probably a mis-configuration that ought to be fixed server-side.
You could probably work around it locally by importing the Let's Encrypt intermediary certificate to your trusted root certificates store.
(The above is not an authoritative answer; I might be completely wrong.)
<!-- github-comment-id:364005554 -->
@CyberShadow I dont think thats whats being asked or addressed here.
@kode54 Theres no way around that in the existing infrastructure - new cert, new fingerprint. Not really a bug, either, really, though, I dont think.
@CyberShadow I dont think thats whats being asked or addressed here.
@kode54 Theres no way around that in the existing infrastructure - new cert, new fingerprint. Not really a bug, either, really, though, I dont think.
<!-- github-comment-id:364005949 -->
@kode54 Do you use "Trust the PKI", or do you use certificate fingerprint whitelisting only?
If you enabled PKI verification, then see my posts above. Otherwise see @teward's answer.
@kode54 Do you use "Trust the PKI", or do you use certificate fingerprint whitelisting only?
If you enabled PKI verification, then see my posts above. Otherwise see @teward's answer.
<!-- github-comment-id:364006452 -->
@teward only if certificate is self-signed. In let's encrypt case, there is a common root cert, so manually approving every new cert is not needed.
@teward only if certificate is self-signed. In let's encrypt case, there is a common root cert, so manually approving every new cert is not needed.
<!-- github-comment-id:364060851 -->
The servers are not sending the full chain, only the tip certificate. And I am only using certificate fingerprint whitelisting, not trusting an entire PKI. I'm not sure how to go about that, on an Ubuntu 16.04 LTS server.
The servers are not sending the full chain, only the tip certificate. And I am only using certificate fingerprint whitelisting, not trusting an entire PKI. I'm not sure how to go about that, on an Ubuntu 16.04 LTS server.
<!-- github-comment-id:364402994 -->
What ZNC version? PKI and therefore Let's encrypt are trusted by default, provided ca-certificates package is installed.
What ZNC version? PKI and therefore Let's encrypt are trusted by default, provided ca-certificates package is installed.
<!-- github-comment-id:364422367 -->
ca-certificates is installed. Connecting to these servers without the fingerprint added results in:
21:01 <*status> Disconnected from IRC (Invalid SSL certificate: unable to get local issuer certificate, unable to verify the first certificate). Reconnecting...
ZNC is:
```
ZNC 1.6.3+deb1 - http://znc.in
IPv6: yes, SSL: yes, DNS: threads, charset: yes
```
ca-certificates is installed. Connecting to these servers without the fingerprint added results in:
```
21:01 <*status> Disconnected from IRC (Invalid SSL certificate: unable to get local issuer certificate, unable to verify the first certificate). Reconnecting...
```
<!-- github-comment-id:364596909 -->
The servers are not sending the full chain, only the tip certificate.
Yep.
If server is misconfigured, we can't do much about it. Ask him to send correct certificate.
> The servers are not sending the full chain, only the tip certificate.
Yep.
If server is misconfigured, we can't do much about it. Ask him to send correct certificate.
<!-- github-comment-id:364600786 -->
I have a similar issue with irc.rizon.net:6697 but it seems to return the chain, so not sure if this is actually the same issue, although they are using Let's Encrypt too.
I suspect in this case it is because of server round-robin. Any idea how to deal with that case?
I have a similar issue with `irc.rizon.net:6697` but it seems to return the chain, so not sure if this is actually the same issue, although they are using Let's Encrypt too.
I suspect in this case it is because of server round-robin. Any idea how to deal with that case?
<!-- github-comment-id:366512714 -->
It is not an error, but rather the prompt If you trust this certificate, do /znc AddTrustedServerFingerprint..... every time I restart znc (either because znc or depending libraries updated)
It is not an error, but rather the prompt `If you trust this certificate, do /znc AddTrustedServerFingerprint.....` every time I restart znc (either because znc or depending libraries updated)
<!-- github-comment-id:366514832 -->
Looks like it is a round-robin issue. Would be interesting to know how to deal with that though, quite a few IRC-servers do that.
`[14:09:18] <*status> Disconnected from IRC (Invalid SSL certificate: hostname doesn't match). Reconnecting...`
Looks like it is a round-robin issue. Would be interesting to know how to deal with that though, quite a few IRC-servers do that.
<!-- github-comment-id:366515055 -->
Well, this certificate is for irc.rizon.net, but you're connecting to irc6.rizon.net. They are different domains. Connect to irc.rizon.net instead.
Well, this certificate is for irc.rizon.net, but you're connecting to irc6.rizon.net. They are different domains. Connect to irc.rizon.net instead.
<!-- github-comment-id:366515436 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
I have several IRC servers I connect to that are currently using Let's Encrypt certificates, and I guess because they're not sending the entire trust chain with their connection requests, I get untrusted certificate notices every 2 months as they replace their certificates with new ones a month or so before the old ones expire. I end up having to add a new fingerprint every two months or so.
Is there something I can tell these server administrators about configuring their services properly with Let's Encrypt? Or is this a ZNC bug?
You can verify that hypothesis using
openssl s_client:FWIW, the latest
certbotversion generates the following files and descriptions:So not using
fullchain.pemis probably a mis-configuration that ought to be fixed server-side.You could probably work around it locally by importing the Let's Encrypt intermediary certificate to your trusted root certificates store.
(The above is not an authoritative answer; I might be completely wrong.)
@CyberShadow I dont think thats whats being asked or addressed here.
@kode54 Theres no way around that in the existing infrastructure - new cert, new fingerprint. Not really a bug, either, really, though, I dont think.
@kode54 Do you use "Trust the PKI", or do you use certificate fingerprint whitelisting only?
If you enabled PKI verification, then see my posts above. Otherwise see @teward's answer.
Do you have ca-certificates package installed? (its name can be different depending on your OS)
@teward only if certificate is self-signed. In let's encrypt case, there is a common root cert, so manually approving every new cert is not needed.
The servers are not sending the full chain, only the tip certificate. And I am only using certificate fingerprint whitelisting, not trusting an entire PKI. I'm not sure how to go about that, on an Ubuntu 16.04 LTS server.
What ZNC version? PKI and therefore Let's encrypt are trusted by default, provided ca-certificates package is installed.
ZNC is:
ca-certificates is installed. Connecting to these servers without the fingerprint added results in:
Can you share name of server?
irc.kitsunet.net port 6697 for TLS.
Yep.
If server is misconfigured, we can't do much about it. Ask him to send correct certificate.
I have a similar issue with
irc.rizon.net:6697but it seems to return the chain, so not sure if this is actually the same issue, although they are using Let's Encrypt too.I suspect in this case it is because of server round-robin. Any idea how to deal with that case?
@leak what is the exact error you're getting?
It is not an error, but rather the prompt
If you trust this certificate, do /znc AddTrustedServerFingerprint.....every time I restart znc (either because znc or depending libraries updated)No, there is an error, it's above this prompt. Right before details of the certificate.
[14:09:18] <*status> Disconnected from IRC (Invalid SSL certificate: hostname doesn't match). Reconnecting...Looks like it is a round-robin issue. Would be interesting to know how to deal with that though, quite a few IRC-servers do that.
Show the certificate details you're getting, and output of
/znc listservershttps://gist.github.com/leak/7cdb4202061ccefe50f2ab99dd8f851e
listservers at the end
Well, this certificate is for irc.rizon.net, but you're connecting to irc6.rizon.net. They are different domains. Connect to irc.rizon.net instead.
That's a good point, will try that - Thank you.