augeas icon indicating copy to clipboard operation
augeas copied to clipboard

httpd lens Apache parsing error with unclosed tags

Open jsoref opened this issue 1 year ago • 4 comments

apache2 (e.g. apachectl -S or apachectl reload) doesn't mind if you have something like:

<IfModule mod_ssl.c>
<VirtualHost *:443>
...
</VirtualHost>

But the lens will complain that there's a syntax error on that last line (because there's a missing </IfModule>).

The end result to a consumer of certbot is something like:

certbot._internal.plugins.disco:Other error:(PluginEntryPoint#apache): There has been an error in parsing the file /etc/apache2/sites-enabled/something.example.com-le-ssl.conf on line 25: Syntax error

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/certbot/_internal/plugins/disco.py", line 111, in prepare
    self._initialized.prepare()
  File "/usr/lib/python3/dist-packages/certbot_apache/_internal/configurator.py", line 389, in prepare
    self.parser.check_parsing_errors("httpd.aug")
  File "/usr/lib/python3/dist-packages/certbot_apache/_internal/parser.py", line 122, in check_parsing_errors
    raise errors.PluginError(msg)

jsoref avatar May 09 '24 15:05 jsoref

So what you have there is a Include vhosts/*.conf stanza, and then in those files you have a bunch of VirtualHosts, some of which have bunch of Vhost defintions, and taken together, to Apache httpd this looks somewhat like this

#v1
<VirtualHost *:80>
  ServerName v1
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
  ServerName v1
</VirtualHost>
# nothing to see here!

#v2 
<VirtualHost *:80>
  ServerName v2
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
  ServerName v1
</VirtualHost>
</IfModule>

So the only reason why apachectl doesn't complain, is because it sees the full picture. my opinion is that it should complain.

igalic avatar May 13 '24 14:05 igalic

😵

jsoref avatar May 13 '24 16:05 jsoref

Apache2 conforms to Postel's law

jsoref avatar May 13 '24 16:05 jsoref

https://datatracker.ietf.org/doc/html/rfc9413

igalic avatar May 26 '24 11:05 igalic