summaryrefslogtreecommitdiffstats
path: root/files
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2024-01-04 16:39:29 +0100
committerGuilhem Moulin <guilhem@fripost.org>2024-01-31 08:19:22 +0100
commitf0488dccb2fe3cb7fc570372926abf0a312a8af8 (patch)
treefe9f421cad6d19ad27da4f68d58841c7078d6bc1 /files
parent649e6c4c696e369712ff18e792ef000125b5591c (diff)
Install nginx.
Diffstat (limited to 'files')
-rw-r--r--files/etc/lacme/lacme-certs.conf.d/hel01.conf7
-rw-r--r--files/etc/nftables.conf3
-rw-r--r--files/etc/nginx/sites-enabled/webmap52
-rw-r--r--files/etc/nginx/snippets/ssl.conf16
4 files changed, 77 insertions, 1 deletions
diff --git a/files/etc/lacme/lacme-certs.conf.d/hel01.conf b/files/etc/lacme/lacme-certs.conf.d/hel01.conf
new file mode 100644
index 0000000..87f290b
--- /dev/null
+++ b/files/etc/lacme/lacme-certs.conf.d/hel01.conf
@@ -0,0 +1,7 @@
+[httpd]
+certificate-key = /etc/nginx/ssl/hel01.rsa.key
+certificate-chain = /etc/nginx/ssl/hel01.rsa.pem
+subject = /CN=hel01.guilhem.se
+notify = /bin/systemctl reload postfix
+
+; vim:ft=dosini
diff --git a/files/etc/nftables.conf b/files/etc/nftables.conf
index e8784ab..7a99b72 100644
--- a/files/etc/nftables.conf
+++ b/files/etc/nftables.conf
@@ -38,7 +38,8 @@ table inet filter {
ct state related,established accept
meta l4proto { icmp, icmpv6 } counter accept
- tcp dport 22 ct state new counter accept
+ tcp dport 22 ct state new counter accept
+ tcp dport {80, 443} ct state new counter accept
}
chain output {
diff --git a/files/etc/nginx/sites-enabled/webmap b/files/etc/nginx/sites-enabled/webmap
new file mode 100644
index 0000000..26df41b
--- /dev/null
+++ b/files/etc/nginx/sites-enabled/webmap
@@ -0,0 +1,52 @@
+server {
+ listen 80;
+ listen [::]:80;
+
+ server_name hel01.guilhem.se;
+
+ include /etc/lacme/nginx.conf;
+
+ access_log /var/log/nginx/access.log;
+ error_log /var/log/nginx/error.log warn;
+
+ location / {
+ return 301 https://$host$request_uri;
+ }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+
+ server_name hel01.guilhem.se;
+
+ access_log /var/log/nginx/access.log;
+ error_log /var/log/nginx/error.log warn;
+
+ ssl_certificate /etc/nginx/ssl/hel01.rsa.pem;
+ ssl_certificate_key /etc/nginx/ssl/hel01.rsa.key;
+ include snippets/ssl.conf;
+
+ root /var/www/webmap;
+ index index.html;
+
+ location ^~ /assets/ {
+ expires 7d;
+ gzip_static on;
+ try_files $uri =404;
+ }
+ location ^~ /tiles/ {
+ expires 1d;
+ gzip_static on;
+ try_files $uri =404;
+ error_page 404 /_.txt;
+ }
+
+ location = /_.txt {
+ internal;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+}
diff --git a/files/etc/nginx/snippets/ssl.conf b/files/etc/nginx/snippets/ssl.conf
new file mode 100644
index 0000000..0bce30a
--- /dev/null
+++ b/files/etc/nginx/snippets/ssl.conf
@@ -0,0 +1,16 @@
+ssl_session_timeout 1d;
+ssl_session_cache shared:SSL:10m;
+ssl_session_tickets off;
+
+ssl_dhparam /etc/ssl/dhparams.pem;
+
+ssl_protocols TLSv1.2 TLSv1.3;
+ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
+ssl_prefer_server_ciphers off;
+
+ssl_stapling on;
+ssl_stapling_verify on;
+
+ssl_trusted_certificate /usr/share/lacme/ca-certificates.crt;
+
+resolver 127.0.0.53;