summaryrefslogtreecommitdiff
path: root/frontends
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-11-30 23:52:14 +0200
committerPaul Buetow <paul@buetow.org>2024-11-30 23:52:14 +0200
commit0e5271d40db1838e715e5e9e81acaa83b3164b31 (patch)
treee4c4362344d7fb80623a2e7611f91c5b9621fd7a /frontends
parent291b326e289b41207b77fa601203434fc0ab239b (diff)
refactor OpenBSD frontends so that relayd always does the TLS termination for httpd
Diffstat (limited to 'frontends')
-rw-r--r--frontends/Rexfile5
-rw-r--r--frontends/etc/httpd.conf.tpl72
-rw-r--r--frontends/etc/relayd.conf.tpl25
3 files changed, 40 insertions, 62 deletions
diff --git a/frontends/Rexfile b/frontends/Rexfile
index f7781da..0111489 100644
--- a/frontends/Rexfile
+++ b/frontends/Rexfile
@@ -17,7 +17,7 @@ use File::Slurp;
group frontends => 'blowfish.buetow.org:2', 'fishfinger.buetow.org:2';
our $ircbouncer_server = 'fishfinger.buetow.org:2';
group ircbouncer => $ircbouncer_server;
-group openbsd_canary => 'blowfish.buetow.org:2';
+group openbsd_canary => 'fishfinger.buetow.org:2';
user 'rex';
sudo TRUE;
@@ -255,7 +255,8 @@ task 'relayd', group => 'frontends',
append_if_no_such_line '/etc/rc.conf.local', 'relayd_flags=';
file '/etc/relayd.conf',
- content => template('./etc/relayd.conf.tpl', ipv6address => $ipv6address),
+ content => template('./etc/relayd.conf.tpl',
+ ipv6address => $ipv6address, acme_hosts => \@acme_hosts),
owner => 'root',
group => 'wheel',
mode => '600',
diff --git a/frontends/etc/httpd.conf.tpl b/frontends/etc/httpd.conf.tpl
index 6f75dfb..2788441 100644
--- a/frontends/etc/httpd.conf.tpl
+++ b/frontends/etc/httpd.conf.tpl
@@ -31,11 +31,7 @@ server "<%= "$hostname.$domain" %>" {
}
server "<%= "$hostname.$domain" %>" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= "$hostname.$domain" %>.fullchain.pem"
- key "/etc/ssl/private/<%= "$hostname.$domain" %>.key"
- }
+ listen on * port 8080
location * {
root "/htdocs/buetow.org/self"
directory auto index
@@ -46,11 +42,7 @@ server "<%= "$hostname.$domain" %>" {
<% for my $host (qw/foo.zone/) { %>
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix.$host %>" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix.$host %>.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix.$host %>.key"
- }
+ listen on * port 8080
location "/.git*" {
block return 302 "https://<%= $prefix.$host %>"
}
@@ -69,33 +61,21 @@ server "<%= $prefix.$host %>" {
# Redirect to paul.buetow.org
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix %>buetow.org" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>buetow.org.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>buetow.org.key"
- }
+ listen on * port 8080
location * {
block return 302 "https://paul.buetow.org$REQUEST_URI"
}
}
server "<%= $prefix %>snonux.foo" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>snonux.foo.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>snonux.foo.key"
- }
+ listen on * port 8080
location * {
block return 302 "https://foo.zone$REQUEST_URI"
}
}
server "<%= $prefix %>paul.buetow.org" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>paul.buetow.org.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>paul.buetow.org.key"
- }
+ listen on * port 8080
location * {
block return 302 "https://foo.zone/about$REQUEST_URI"
}
@@ -105,11 +85,7 @@ server "<%= $prefix %>paul.buetow.org" {
# Redirect to gitub.dtail.dev
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix %>dtail.dev" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>dtail.dev.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>dtail.dev.key"
- }
+ listen on * port 8080
location * {
block return 302 "https://github.dtail.dev$REQUEST_URI"
}
@@ -119,11 +95,7 @@ server "<%= $prefix %>dtail.dev" {
# Irregular Ninja special hosts
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix %>irregular.ninja" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>irregular.ninja.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>irregular.ninja.key"
- }
+ listen on * port 8080
location * {
root "/htdocs/irregular.ninja"
directory auto index
@@ -133,11 +105,7 @@ server "<%= $prefix %>irregular.ninja" {
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix %>alt.irregular.ninja" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>alt.irregular.ninja.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>alt.irregular.ninja.key"
- }
+ listen on * port 8080
location * {
root "/htdocs/alt.irregular.ninja"
directory auto index
@@ -148,11 +116,7 @@ server "<%= $prefix %>alt.irregular.ninja" {
# Dory special host
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix %>dory.buetow.org" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>dory.buetow.org.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>dory.buetow.org.key"
- }
+ listen on * port 8080
location * {
root "/htdocs/joern/dory.buetow.org"
directory auto index
@@ -162,11 +126,7 @@ server "<%= $prefix %>dory.buetow.org" {
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix %>solarcat.buetow.org" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>solarcat.buetow.org.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>solarcat.buetow.org.key"
- }
+ listen on * port 8080
location * {
root "/htdocs/joern/solarcat.buetow.org"
directory auto index
@@ -176,11 +136,7 @@ server "<%= $prefix %>solarcat.buetow.org" {
<% for my $prefix (@prefixes) { -%>
server "<%= $prefix %>fotos.buetow.org" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/<%= $prefix %>fotos.buetow.org.fullchain.pem"
- key "/etc/ssl/private/<%= $prefix %>fotos.buetow.org.key"
- }
+ listen on * port 8080
root "/htdocs/buetow.org/fotos"
directory auto index
}
@@ -193,10 +149,6 @@ server "default" {
}
server "default" {
- listen on * tls port 443
- tls {
- certificate "/etc/ssl/foo.zone.fullchain.pem"
- key "/etc/ssl/private/foo.zone.key"
- }
+ listen on * port 8080
block return 302 "https://foo.zone$REQUEST_URI"
}
diff --git a/frontends/etc/relayd.conf.tpl b/frontends/etc/relayd.conf.tpl
index f2edf43..e75efa3 100644
--- a/frontends/etc/relayd.conf.tpl
+++ b/frontends/etc/relayd.conf.tpl
@@ -1,5 +1,30 @@
log connection
+<%
+ our @prefixes = ('', 'www.', 'standby.');
+%>
+
+tcp protocol "https" {
+<% for my $host (@$acme_hosts) { -%>
+<% for my $prefix (@prefixes) { -%>
+ tls keypair <%= $prefix.$host -%>
+<% } -%>
+<% } -%>
+ tls keypair <%= $hostname.'.'.$domain -%>
+}
+
+relay "https4" {
+ listen on <%= $vio0_ip %> port 443 tls
+ protocol "https"
+ forward to 127.0.0.1 port 8080
+}
+
+relay "https6" {
+ listen on <%= $ipv6address->($hostname) %> port 443 tls
+ protocol "https"
+ forward to ::1 port 8080
+}
+
tcp protocol "gemini" {
tls keypair foo.zone
tls keypair snonux.foo