Security Controls

HTTP-6710 - SSL configuration in nginx


To protect the privacy of users, including sniffing of sensitive data on networks, enable SSL/TLS in nginx.



How to solve

Enabling TLS in nginx allows it to encrypt the connection between the server and user. Commonly this is referred to as using a SSL certificate. It is good to know that older SSL protocols (SSL v2 and SSL v3) are considered to be weak and should be avoided. The nginx configuration will still use the related "ssl" option, but that is independent of the actual protocols which are used. For new deployments consider only to use TLS v1.2.

  1. Enable SSL on the listen statement of an entry, or with "ssl on;"
  2. Define the certificate
  3. Define the allowed ciphers
  4. Define the allowed protocols (SSL / TLS)
  5. Apply additional measures like SSL stapling

Lynis Enterprise can help you detect more configuration items and store them centrally.

Additional resources

Linux and Unix System Hardening

This information is provided as part of the Lynis community project. It is related to Lynis control HTTP-6710. All information should be considered as-is, without guarantees. Any advice or snippets should be tested before implementing in production environments.


Lynis is a technical security audit tool for systems running Linux, UNIX, *BSD, and macOS. It is open source software and free to use. The project has an active community, and can also be found on GitHub.

Lynis Enterprise

Need more advanced features, like vulnerability scanning, or reporting installed software packages? Lynis Enterprise will collect more data and present it with an easy to use web interface.

Gain additional benefits: automating security audits, reporting, and the implementation of related security measures.

Lynis Enterprise includes
  • Centralized management
  • Prioritized plans
  • Reporting
  • Dashboards
  • Integration (API)
  • Improvement snippets for tools like Ansible, Chef, Cfengine and Puppet

Take the Tour