This configuration is a security measure used to create a catch-all black hole server block. Its purpose is to handle any requests that do not match a specifically defined domain name on the server.


Setup

1) Create a self-signed cert with openssl with a 10 years validity.

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout /path/to/dummy.key \
  -out /path/to/dummy.crt \
  -subj "/CN=_"

2) Create a new server block in the Nginx config.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    server_name _;

    ssl_certificate     /path/to/dummy.crt;
    ssl_certificate_key /path/to/dummy.key;

    return 444;
}

3) Check and restart Nginx service.

sudo nginx -t
sudo service nginx restart

The Usage

1) Many automated bots scan IP addresses directly rather than using domain names. By returning `444`, you save bandwidth and hide the fact that an active web server is running.

2) It ensures that requests with fake or unexpected `Host` headers are dropped rather than being routed to your actual application.

3) Modern HTTPS requires a certificate to complete the handshake. Without this default block, if someone hits your IP via HTTPS, Nginx might serve the certificate of a random site hosted on the same server. Using a dummy certificate ensures your "real" certificates aren't leaked to scanners.