39 lines
940 B
Bash
Executable File
39 lines
940 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
ENV_FILE="${ROOT_DIR}/.env.prod"
|
|
|
|
cd "$ROOT_DIR"
|
|
|
|
if [[ ! -f "$ENV_FILE" ]]; then
|
|
echo "Missing ${ENV_FILE}. Copy .env.example to .env.prod and configure it." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# shellcheck disable=SC1090
|
|
set -a
|
|
source "$ENV_FILE"
|
|
set +a
|
|
|
|
if [[ -z "${CLEARNET_DOMAIN:-}" ]]; then
|
|
echo "CLEARNET_DOMAIN is not set in .env.prod" >&2
|
|
exit 1
|
|
fi
|
|
|
|
LIVE_DIR="${ROOT_DIR}/deploy/certs/live/${CLEARNET_DOMAIN}"
|
|
|
|
if [[ -f "${LIVE_DIR}/fullchain.pem" ]]; then
|
|
echo "Certificates already exist at deploy/certs/live/${CLEARNET_DOMAIN}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$LIVE_DIR"
|
|
|
|
openssl req -x509 -nodes -newkey rsa:2048 -days 1 \
|
|
-keyout "${LIVE_DIR}/privkey.pem" \
|
|
-out "${LIVE_DIR}/fullchain.pem" \
|
|
-subj "/CN=${CLEARNET_DOMAIN}"
|
|
|
|
echo "Temporary self-signed certificates created at deploy/certs/live/${CLEARNET_DOMAIN}"
|