-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for generating SSL certificates for multiple domains
- Loading branch information
1 parent
4ed3c0c
commit 32033e5
Showing
1 changed file
with
16 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|