Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi domain ssl support #1173

Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions compose/bin/setup-ssl
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
#!/usr/bin/env bash
[ -z "$1" ] && echo "Please specify a domain (ex. mydomain.test)" && exit
[ $# -eq 0 ] && echo "Please specify at least one domain (ex. mydomain.test)" && exit 1

# Generate certificate authority if not already setup
if ! bin/docker-compose exec -T -u root app cat /root/.local/share/mkcert/rootCA.pem | grep -q 'BEGIN CERTIFICATE'; then
bin/setup-ssl-ca
fi

# Generate the certificate for the specified domain
DOMAIN_WITHOUT_PORT=$(echo "$@" | cut -d ':' -f1)
bin/docker-compose exec -T -u root app mkcert -key-file nginx.key -cert-file nginx.crt "$DOMAIN_WITHOUT_PORT"
echo "Moving key and cert to /etc/nginx/certs/..."
bin/docker-compose exec -T -u root app chown app:app nginx.key nginx.crt
bin/docker-compose exec -T -u root app mv nginx.key nginx.crt /etc/nginx/certs/
for DOMAIN in "$@"; do
# Generate the certificate for the specified domain
DOMAIN_WITHOUT_PORT=$(echo "$DOMAIN" | cut -d ':' -f1)
bin/docker-compose exec -T -u root app mkcert -key-file nginx.key -cert-file nginx.crt "$DOMAIN_WITHOUT_PORT"

# Check if the certificates were created successfully
if bin/docker-compose exec -T -u root app test -f nginx.key && bin/docker-compose exec -T -u root app test -f nginx.crt; then
echo "Moving key and cert for $DOMAIN to /etc/nginx/certs/..."
bin/docker-compose exec -T -u root app chown app:app nginx.key nginx.crt
bin/docker-compose exec -T -u root app mv nginx.key nginx.crt /etc/nginx/certs/
else
echo "Error: Certificates for $DOMAIN were not created."
fi
done

# Restart nginx to apply the updates
echo "Restarting containers to apply updates..."
bin/restart