49 lines
1.1 KiB
Bash
49 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# فعالسازی SSL رایگان Let's Encrypt برای دامنه CDN
|
|
# استفاده: bash cdn-ssl.sh cdn.modstagram.com admin@modstagram.com
|
|
|
|
set -e
|
|
|
|
DOMAIN="$1"
|
|
EMAIL="$2"
|
|
|
|
if [ -z "$DOMAIN" ]; then
|
|
echo "ERROR: domain is required"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$EMAIL" ]; then
|
|
EMAIL="admin@modstagram.com"
|
|
fi
|
|
|
|
if ! command -v certbot &> /dev/null; then
|
|
echo "Installing certbot..."
|
|
apt-get update -y
|
|
apt-get install -y certbot python3-certbot-nginx
|
|
fi
|
|
|
|
echo "Requesting certificate for: $DOMAIN"
|
|
|
|
certbot certonly \
|
|
--nginx \
|
|
--non-interactive \
|
|
--agree-tos \
|
|
--email "$EMAIL" \
|
|
-d "$DOMAIN" \
|
|
--redirect
|
|
|
|
echo "Certificate issued successfully for $DOMAIN"
|
|
|
|
if command -v nginx &> /dev/null; then
|
|
nginx -t && systemctl reload nginx
|
|
echo "Nginx reloaded"
|
|
fi
|
|
|
|
if [ "$3" = "--setup-cron" ] || [ "${SSL_AUTO_RENEW:-true}" = "true" ]; then
|
|
CRON_CMD="0 3 * * * certbot renew --quiet --nginx && systemctl reload nginx"
|
|
(crontab -l 2>/dev/null | grep -v "certbot renew" ; echo "$CRON_CMD") | crontab -
|
|
echo "Auto-renew cron job configured"
|
|
fi
|
|
|
|
echo "SSL activation complete"
|