Skip to content

Issue with Nginx 1.26.3-3+deb13u5 http2" directive is deprecated #609

Open

Description

@Thermal-spearhead

Hi,

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:

https://www.geekersdigest.com/how-to-fix-listen-http2-directive-is-deprecated-after-nginx-upgrade/

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.

Activity

  1. qntoni commented on May 20, 2026

    @qntoni
    Contributor

    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?

    Best regards

  2. Thermal-spearhead commented on May 20, 2026

    @Thermal-spearhead
    Author

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions