title: NGINX won't listen on port 443
body: <p>I installed SSL on my DigitalOcean droplet following this <a href="https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04" rel="nofollow noreferrer">documentation</a>.</p>
  
  <p>Inspite of this, all requests on <code>https://</code> are getting refused!</p>
  
  <p>I ran the following command : <code>sudo netstat -anltp</code> and found that <code>NGINX</code> isn't listening on port <code>443</code></p>
  
  <pre><code>tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1337/mysqld
  tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2315/nginx -g daemo
  tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1442/sshd
  tcp        0    288 138.197.137.XXX:22      45.64.239.214:53476     ESTABLISHED 1590/0
  tcp        0      0 138.197.137.XXX:22      218.65.30.134:65311     ESTABLISHED 2340/sshd: root [pr
  tcp        0      0 138.197.137.XXX:22      45.64.239.214:53487     ESTABLISHED 1724/sshd: root@not
  tcp6       0      0 :::80                   :::*                    LISTEN      2315/nginx -g daemo
  tcp6       0      0 :::22                   :::*                    LISTEN      1442/sshd
  </code></pre>
  
  <p>My <code>nginx.conf</code> file is shown below:</p>
  
  <pre><code>user www-data;
  worker_processes auto;
  pid /run/nginx.pid;
  
  events {
      worker_connections 768;
      # multi_accept on;
  }
  
  http {
  
      ##
      # Basic Settings
      ##
  
      sendfile on;
      tcp_nopush on;
      tcp_nodelay on;
      keepalive_timeout 65;
      types_hash_max_size 2048;
      # server_tokens off;
  
      # server_names_hash_bucket_size 64;
      # server_name_in_redirect off;
  
      include /etc/nginx/mime.types;
      default_type application/octet-stream;
  
      ##
      # SSL Settings
      ##
  
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
      ssl_prefer_server_ciphers on;
  
      ##
      # Logging Settings
      ##
  
      access_log /var/log/nginx/access.log;
      error_log /var/log/nginx/error.log;
  
      ##
      # Gzip Settings
      ##
  
      gzip on;
      gzip_disable "msie6";
  
      # gzip_vary on;
      # gzip_proxied any;
      # gzip_comp_level 6;
      # gzip_buffers 16 8k;
      # gzip_http_version 1.1;
      # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  
      ##
      # Virtual Host Configs
      ##
  
      include /etc/nginx/conf.d/*.conf;
      include /etc/nginx/sites-enabled/*;
  }
  
  
  #mail {
  #   # See sample authentication script at:
  #   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
  # 
  #   # auth_http localhost/auth.php;
  #   # pop3_capabilities "TOP" "USER";
  #   # imap_capabilities "IMAP4rev1" "UIDPLUS";
  # 
  #   server {
  #       listen     localhost:110;
  #       protocol   pop3;
  #       proxy      on;
  #   }
  # 
  #   server {
  #       listen     localhost:143;
  #       protocol   imap;
  #       proxy      on;
  #   }
  #}
  </code></pre>
  
  <p>My <code>/etc/nginx/sites-available/default</code> is shown below :</p>
  
  <pre><code>##
  # You should look at the following URL's in order to grasp a solid understanding
  # of Nginx configuration files in order to fully unleash the power of Nginx.
  # http://wiki.nginx.org/Pitfalls
  # http://wiki.nginx.org/QuickStart
  # http://wiki.nginx.org/Configuration
  #
  # Generally, you will want to move this file somewhere, and start with a clean
  # file but keep this around for reference. Or just disable in sites-enabled.
  #
  # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
  ##
  
  # Default server configuration
  #
  server {
      listen 80 default_server;
      listen [::]:80 default_server;
      server_name example.com www.example.com;
      return 301 https://$server_name$request_uri;
  }
  
  server {
  
      # SSL configuration
      #
      listen 443 ssl default_server;
      listen [::]:443 ssl default_server;
      include snippets/ssl-torrentic.cf.conf;
      include snippets/ssl-params.conf;
  
      # listen 443 ssl default_server;
      # listen [::]:443 ssl default_server;
      #
      # Note: You should disable gzip for SSL traffic.
      # See: https://bugs.debian.org/773332
      #
      # Read up on ssl_ciphers to ensure a secure configuration.
      # See: https://bugs.debian.org/765782
      #
      # Self signed certs generated by the ssl-cert package
      # Don't use them in a production server!
      #
      # include snippets/snakeoil.conf;
  
      root /var/www/html;
  
      # Add index.php to the list if you are using PHP
      index index.html index.htm index.nginx-debian.html;
  
      server_name _;
  
      location / {
          # First attempt to serve request as file, then
          # as directory, then fall back to displaying a 404.
          try_files $uri $uri/ =404;
      }
  
      # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
      #
      #location ~ \.php$ {
      #   include snippets/fastcgi-php.conf;
      #
      #   # With php7.0-cgi alone:
      #   fastcgi_pass 127.0.0.1:9000;
      #   # With php7.0-fpm:
      #   fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      #}
  
      # deny access to .htaccess files, if Apache's document root
      # concurs with nginx's one
      #
      #location ~ /\.ht {
      #   deny all;
      #}
  }
  
  
  # Virtual Host configuration for example.com
  #
  # You can move that to a different file under sites-available/ and symlink that
  # to sites-enabled/ to enable it.
  #
  #server {
  #   listen 80;
  #   listen [::]:80;
  #
  #   server_name example.com;
  #
  #   root /var/www/example.com;
  #   index index.html;
  #
  #   location / {
  #       try_files $uri $uri/ =404;
  #   }
  #}
  
  
  
  # Virtual Host configuration for example.com
  #
  # You can move that to a different file under sites-available/ and symlink that
  # to sites-enabled/ to enable it.
  #
  #server {
  #   listen 80;
  #   listen [::]:80;
  #
  #   server_name example.com;
  #
  #   root /var/www/example.com;
  #   index index.html;
  #
  #   location / {
  #       try_files $uri $uri/ =404;
  #   }
  #}
  </code></pre>
  
  <p>Firewall status:</p>
  
  <pre><code>Status: active
  
  To                         Action      From
  --                         ------      ----
  22                         LIMIT       Anywhere
  443                        ALLOW       Anywhere
  80                         ALLOW       Anywhere
  Nginx Full                 ALLOW       Anywhere
  443/tcp                    ALLOW       Anywhere
  22 (v6)                    LIMIT       Anywhere (v6)
  443 (v6)                   ALLOW       Anywhere (v6)
  80 (v6)                    ALLOW       Anywhere (v6)
  Nginx Full (v6)            ALLOW       Anywhere (v6)
  443/tcp (v6)               ALLOW       Anywhere (v6)
  </code></pre>
  
  <p>What is wrong ? How do I fix it ?</p>