mailcow-dockerized-docs/docs/manual-guides/Nginx/u_e-nginx_webmail-site.en.md
2022-12-15 15:38:44 +01:00

1,7 KiB

IMPORTANT: This guide only applies to non SNI enabled configurations. The certificate path needs to be adjusted if SNI is enabled. Something like ssl_certificate,key /etc/ssl/mail/webmail.example.org/cert.pem,key.pem; will do. But: The certificate should be acquired first and only after the certificate exists a site config should be created. Nginx will fail to start if it cannot find the certificate and key.

To create a subdomain webmail.example.org and redirect it to SOGo, you need to create a new Nginx site. Take care of "CHANGE_TO_MAILCOW_HOSTNAME"!

nano data/conf/nginx/webmail.conf

server {
  ssl_certificate /etc/ssl/mail/cert.pem;
  ssl_certificate_key /etc/ssl/mail/key.pem;
  index index.php index.html;
  client_max_body_size 0;
  root /web;
  include /etc/nginx/conf.d/listen_plain.active;
  include /etc/nginx/conf.d/listen_ssl.active;
  server_name webmail.example.org;
  server_tokens off;
  location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
  }

  location / {
    return 301 https://CHANGE_TO_MAILCOW_HOSTNAME/SOGo;
  }
}

Save and restart Nginx:

=== "docker compose (Plugin)"

``` bash
docker compose restart nginx-mailcow
```

=== "docker-compose (Standalone)"

``` bash
docker-compose restart nginx-mailcow
```

Now open mailcow.conf and find ADDITIONAL_SAN. Add webmail.example.org to this array, don't use quotes!

ADDITIONAL_SAN=webmail.example.org

Run the command to apply the changes:

=== "docker compose (Plugin)"

``` bash
docker compose up -d
```

=== "docker-compose (Standalone)"

``` bash
docker-compose up -d
```

See "acme-mailcow" and "nginx-mailcow" logs if anything fails.