Hi openbsd-misc,

I am a hobbyist hosting several services on my OpenBSD-7.5 machine. Because
some of the services that I want to use export their own HTTP server (and
not a FastCGI one), I am cornered into using relayd with httpd.

When things were simpler, I could serve gitea with just httpd. Everything
worked perfectly in the browser and I could "git clone" repos without
problems. However, when I introduced relayd into the stack as a TLS
accelerator, I got a curious error. Navigating to the gitea server with the
browser (i.e., https://src.domain.io) still works with zero problems. But
when I try to use "git clone" or "curl" on the terminal, I get the
following errors:

   $ git clone https://src.domain.io/user/aoc.git
   Cloning into 'aoc'...
   fatal: unable to access 'https://src.domain.io/user/aoc.git/': SSL
certificate problem: unable to get local issuer certificate

and

   $ curl https://src.domain.io
   curl: (60) SSL certificate problem: unable to get local issuer
certificate
   More details here: https://curl.se/docs/sslcerts.html

   curl failed to verify the legitimacy of the server and therefore could
not
   establish a secure connection to it. To learn more about this situation
and
   how to fix it, please visit the web page mentioned above.


Am I missing something obvious?

Below are my configs.
Thanks in advance.


# httpd.conf
server "src.domain.io" {
   listen on * port 80
   location "/.well-known/acme-challenge/*" {
      root "/acme"
      request strip 2
   }

   block return 302 "https://$HTTP_HOST$REQUEST_URI";
}



# relayd.conf
ip4="192.168.1.78"

table <src.domain.io> { 127.0.0.1 }

http protocol wwwtls {
        return error

        match request header set "X-Forwarded-For" value "$REMOTE_ADDR"
        match request header set "X-Forwarded-By" value
"$SERVER_ADDR:$SERVER_PORT"
        match request header set "X-Forwarded-Host" value "$HOST"
        match request header set "X-Forwarded-Port" value "$SERVER_PORT"
        match request header set "X-Forwarded-Proto" value "https"
        match response header set "X-XSS-Protection"       value "1;
mode=block"
        match response header set "X-Content-Type-Options" value "nosniff"
        match request header set "Connection" value "close"

        match response header set "Permissions-Policy"     value
"accelerometer=(),

ambient-light-sensor=(),autoplay=(),camera=(),encrypted-media=(),
              focus-without-user-activation=(),geolocation=(),gyroscope=(),

magnetometer=(),microphone=(),midi=(),payment=(),picture-in-picture=(),
              speaker=(),sync-xhr=(),usb=(),vr=()"

        match header set "Keep-Alive" value "$TIMEOUT"
        match response header remove "X-Powered-By"

        tcp { nodelay, sack, backlog 128, socket buffer 65536 }

        tls keypair src.domain.io

        match request header "Host" value "src.domain.io" forward to <
src.domain.io>
}

relay wwwtls {
        listen on $ip4 port 443 tls
        protocol wwwtls

        forward to <src.domain.io> port 3000
}


# gitea app.ini
APP_NAME = my_gitea_server
RUN_USER = _gitea
WORK_PATH = /usr/local/share/gitea
RUN_MODE = prod

[server]
PROTOCOL = http
DOMAIN = src.domain.io
ROOT_URL = https://src.domain.io
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
SSH_PORT = 22
APP_DATA_PATH = /var/gitea/data
SSH_DOMAIN = 192.168.1.78
DOMAIN = 192.168.1.78
DISABLE_SSH = false
LANDING_PAGE = home


# /etc/ssl
drwxr-xr-x  3 root  wheel   512B Dec 27  2021 acme/
drwx------  2 root  wheel   512B Oct 25 19:57 private/
-r--r--r--  1 root  wheel   341K Sep 14 19:34 cert.pem
-r--r--r--  1 root  wheel   2.1K Oct 25 19:59 src.domain.io.crt
-r--r--r--  1 root  wheel   3.8K Oct 25 19:59 src.domain.io.fullchain.pem
-rw-r--r--  1 root  wheel   504B Oct 26 17:46 src.domain.io.ocsp
-rw-r--r--  1 root  wheel   504B Oct 26 13:58 src.domain.io.ocsp.pem

Reply via email to