about summary refs log tree commit diff
path: root/gogs/gogs.conf
diff options
context:
space:
mode:
Diffstat (limited to 'gogs/gogs.conf')
-rw-r--r--gogs/gogs.conf50
1 files changed, 50 insertions, 0 deletions
diff --git a/gogs/gogs.conf b/gogs/gogs.conf
new file mode 100644
index 000000000000..4b3c91c792f3
--- /dev/null
+++ b/gogs/gogs.conf
@@ -0,0 +1,50 @@
+# Gogs TLS tunnel
+server {
+    listen 443 ssl;
+
+    # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
+    ssl_certificate /etc/nginx/ssl/git-tazj-in.crt;
+    ssl_certificate_key /etc/nginx/ssl/git-tazj-in.key;
+    ssl_session_timeout 1d;
+    ssl_session_cache shared:SSL:50m;
+    ssl_session_tickets off;
+
+    # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
+    ssl_dhparam /etc/nginx/ssl/git-tazj-in.dh;
+
+    # modern configuration. tweak to your needs.
+    ssl_protocols TLSv1.1 TLSv1.2;
+    ssl_ciphers '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:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
+    ssl_prefer_server_ciphers on;
+
+    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
+    add_header Strict-Transport-Security max-age=15768000;
+
+    # OCSP Stapling ---
+    # fetch OCSP records from URL in ssl_certificate and cache them
+    ssl_stapling on;
+    ssl_stapling_verify on;
+
+    ## verify chain of trust of OCSP response using Root CA and Intermediate certs
+    ssl_trusted_certificate /etc/nginx/ssl/letsencrypt.crt;
+
+    resolver 8.8.8.8;
+
+    # Proxy all requests to Gogs
+    location / {
+        proxy_pass http://localhost:3000;
+    }
+    
+    # Except the tiny .well-known folder, which we will need for renewing certs
+    location ^~ /.well-known/acme-challenge/ {
+        default_type "text/plain";
+        root /tmp/gogs/letsencrypt;
+    }
+}
+
+# Redirect to HTTPS
+server {
+    listen 80 default_server;
+    server_name _;
+    return 301 https://$host$request_uri;
+}