diff --git a/README.md b/README.md index 284caaf..1176042 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,16 @@ Online nginx configuration generator. ## Features -* HTTPS (with [Let's Encrypt](https://letsencrypt.org) or custom certificate, [Mozilla SSL Configuration Generator](https://mozilla.github.io/server-side-tls/ssl-config-generator/)) +* HTTPS (with [Let's Encrypt](https://letsencrypt.org) or custom certificate) * HTTP2 +* [SSL profiles](https://mozilla.github.io/server-side-tls/ssl-config-generator/) +* [HSTS](https://hstspreload.org) +* force HTTPS * CDN * www / non-www +* redirect subdomains * IPv4, IPv6 -* PHP (TCP, 5.x FPM, 7.0 FPM, 7.1 FPM, 7.2 FPM) +* PHP (TCP, 5.x FPM, 7.0 FPM, 7.1 FPM, 7.2 FPM, 7.3 FPM) * WordPress security essentials (*including [CVE-2018-6389](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6389)*) * pass requests to index.php * *[Laravel](https://laravel.com/docs/master/deployment#nginx)* @@ -62,3 +66,5 @@ Online nginx configuration generator. * [NGINX Tuning For Best Performance](https://gist.github.com/denji/8359866) * [Hardening Your HTTP Security Headers](https://www.keycdn.com/blog/http-security-headers/) * [h5bp/server-configs-nginx](https://github.com/h5bp/server-configs-nginx) +* [Diffie-Hellman DSA-like parameters](https://security.stackexchange.com/questions/95178/diffie-hellman-parameters-still-calculating-after-24-hours/95184#95184) +* [hstspreload.org](https://hstspreload.org) diff --git a/public/assets/js/app.js b/public/assets/js/app.js index 0cbf4de..7e882ec 100644 --- a/public/assets/js/app.js +++ b/public/assets/js/app.js @@ -39,6 +39,8 @@ force_https: true, cert_type: 'letsencrypt', + ssl_profile: 'intermediate', + hsts: true, email: '', ssl_certificate: '', ssl_certificate_key:'', @@ -100,6 +102,21 @@ $scope.gzipTypes = 'text/plain text/css text/xml application/json application/javascript application/xml+rss application/atom+xml image/svg+xml'; + $scope.sslProfiles = { + modern: { + protocols: 'TLSv1.2', + ciphers: 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256', + }, + intermediate: { + protocols: 'TLSv1 TLSv1.1 TLSv1.2', + ciphers: 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS', + }, + old: { + protocols: 'SSLv3 TLSv1 TLSv1.1 TLSv1.2', + ciphers: 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP', + }, + }; + $scope.clipboardCopy = undefined; @@ -293,6 +310,22 @@ return $scope.isHTTPS() && $scope.data.cert_type === 'custom'; }; + $scope.isSSLProfileModern = function() { + return $scope.isHTTPS() && $scope.data.ssl_profile === 'modern'; + }; + + $scope.isSSLProfileIntermediate = function() { + return $scope.isHTTPS() && $scope.data.ssl_profile === 'intermediate'; + }; + + $scope.isSSLProfileOld = function() { + return $scope.isHTTPS() && $scope.data.ssl_profile === 'old'; + }; + + $scope.isHSTS = function() { + return $scope.isHTTPS() && $scope.data.hsts; + }; + $scope.isNonWWW = function() { return $scope.data.non_www; }; diff --git a/public/index.html b/public/index.html index 63b7a46..393bbd2 100644 --- a/public/index.html +++ b/public/index.html @@ -135,6 +135,35 @@ +