You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Issue with Nginx 1.26.3-3+deb13u5 http2" directive is deprecated #609
I upgraded my Debian 13 machine and Ngnix 1.26.3-3+deb13u5 came with it.
May 20 15:34:44 passbolt nginx[17726]: 2026/05/20 15:34:44 [warn] 17726#17726: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/sites-enabled/nginx-passbolt.conf:7
May 20 15:34:44 passbolt nginx[17726]: 2026/05/20 15:34:44 [emerg] 17726#17726: a duplicate listen 0.0.0.0:443 in /etc/passbolt/nginx-ssl.conf:12
May 20 15:34:44 passbolt nginx[17726]: nginx: configuration file /etc/nginx/nginx.conf test failed
The url to my passbolt instance stopped working.
These are the errors, I googled the http2 directive error found this:
So in /etc/passbolt/nginx-ssl.conf I removed the listen [::]:443 ssl http2; and added http2 on; as per the guide above and then commented out the extra listen 443 ssl; parameter like this:
listen [::]:443 ssl;
listen 443 ssl;
http2 on;
Re-ran apt upgrade
root@passbolt:~# apt upgrade
Summary:
Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0
1 not fully installed or removed.
Space needed: 0 B / 17.4 GB available
Continue? [Y/n]
Setting up nginx (1.26.3-3+deb13u5) ...
Upgrading binary: nginx.
This time it worked and the passbolt url instance was accessible. I almost had to restore from backup because I wasn't sure if I could get this working.
Hello @Thermal-spearhead,
Thank you for your feedback and for your time sharing the steps taken.
This is a known issues on our end as we added http2 on earlier but we had to remove it because it tend to crash for NGINX < 1.25.1 (c.f. passbolt/passbolt_packaging@f5cc271) and we still support distribution that comes with this NGINX version.
I have personally tried to reproduce the issues on Debian 13 with NGINX 1.26.3 and no http2 on; and couldn't:
vagrant@debian-13:~$ sudo nginx -v
nginx version: nginx/1.26.3
vagrant@debian-13:~$ sudo nginx -t
2026/05/20 01:13:20 [warn] 15279#15279: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/passbolt/nginx-ssl.conf:11
2026/05/20 01:13:20 [warn] 15279#15279: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/passbolt/nginx-ssl.conf:12
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
vagrant@debian-13:~$ sudo cat /etc/passbolt/nginx-ssl.conf | grep http2
listen [::]:443 ssl http2;
listen 443 ssl http2;
Beside the warnings everything is working as expected, it could be a conflict from an in-place upgrade, is it the case? if so, from which distribution are you coming from?
Actually what prompted the initial issue was the SSL Cert expired (using letsencrypt)
This is how I renew it using the DNS challenge: certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d *.domain.com (hidden domain for privacy reasons)
So it successfully renewed it for another 90 days and placed the certs into /etc/letsencrypt/live/domain.com/fullchain.pem and /etc/letsencrypt/live/domain.com/privkey.pem
So after that I restarted Nginx to pull in the new cert, systemctl restart nginx no issues but it was still the old cert when i visited the URL.
systemctl restart nginx and then the issues above started occurring.
So with all that in mind I have no clue what caused the nginx.conf file to include 2 SSL entries, the letsencrypt module doesn't modify any of that and purely grabs the cert only.
Activity
qntoni commentedon May 20, 2026
Hello @Thermal-spearhead,
Thank you for your feedback and for your time sharing the steps taken.
This is a known issues on our end as we added
http2 onearlier but we had to remove it because it tend to crash for NGINX < 1.25.1 (c.f. passbolt/passbolt_packaging@f5cc271) and we still support distribution that comes with this NGINX version.I have personally tried to reproduce the issues on Debian 13 with NGINX 1.26.3 and no http2 on; and couldn't:
Beside the warnings everything is working as expected, it could be a conflict from an in-place upgrade, is it the case? if so, from which distribution are you coming from?
Best regards
Thermal-spearhead commentedon May 20, 2026
Hey @qntoni thanks for the response, I did a bit more thinking overnight and how I got to this point and this is what I have:
So it runs in an LXC Container Debian 13 on Proxmox, I provisioned it using these docs https://www.passbolt.com/docs/hosting/install/ce/debian/
Actually what prompted the initial issue was the SSL Cert expired (using letsencrypt)
This is how I renew it using the DNS challenge: certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d *.domain.com (hidden domain for privacy reasons)
So it successfully renewed it for another 90 days and placed the certs into /etc/letsencrypt/live/domain.com/fullchain.pem and /etc/letsencrypt/live/domain.com/privkey.pem
So after that I restarted Nginx to pull in the new cert, systemctl restart nginx no issues but it was still the old cert when i visited the URL.
So based on https://www.passbolt.com/docs/hosting/configure/https/pro/debian-auto/#install-or-reconfigure-passbolt
Ran dpkg-reconfigure passbolt-ce-server and gave it the cert paths above and then got the Well done! message.
systemctl restart nginx and then the issues above started occurring.
So with all that in mind I have no clue what caused the nginx.conf file to include 2 SSL entries, the letsencrypt module doesn't modify any of that and purely grabs the cert only.