67 lines
2.1 KiB
Bash
67 lines
2.1 KiB
Bash
#!/bin/bash
|
|
# Setup HTTPS for QuickBooks POS Help Server
|
|
# Run this when you have a domain name and are ready for HTTPS
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo "HTTPS Setup for QuickBooks POS Help"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Prerequisites:"
|
|
echo " 1. Domain name pointing to this server"
|
|
echo " 2. Ports 80 and 443 open in firewall"
|
|
echo ""
|
|
read -p "Enter your domain name (e.g., qbpos.prompttech.com): " DOMAIN
|
|
|
|
if [ -z "$DOMAIN" ]; then
|
|
echo "Error: Domain name required"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "Installing Certbot for Let's Encrypt SSL..."
|
|
sudo apt update
|
|
sudo apt install -y certbot python3-certbot-nginx
|
|
|
|
echo ""
|
|
echo "Obtaining SSL certificate for $DOMAIN..."
|
|
sudo certbot certonly --standalone -d "$DOMAIN" --agree-tos --non-interactive --email admin@prompttech.com
|
|
|
|
CERT_PATH="/etc/letsencrypt/live/$DOMAIN/fullchain.pem"
|
|
KEY_PATH="/etc/letsencrypt/live/$DOMAIN/privkey.pem"
|
|
|
|
if [ ! -f "$CERT_PATH" ]; then
|
|
echo "Error: Certificate not found at $CERT_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "Updating server configuration..."
|
|
|
|
# Update secure_production_server.py
|
|
sed -i "s|USE_HTTPS = False|USE_HTTPS = True|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
|
|
sed -i "s|SSL_CERT_FILE = \".*\"|SSL_CERT_FILE = \"$CERT_PATH\"|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
|
|
sed -i "s|SSL_KEY_FILE = \".*\"|SSL_KEY_FILE = \"$KEY_PATH\"|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
|
|
sed -i "s|PORT = 8888|PORT = 443|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
|
|
|
|
echo ""
|
|
echo "Setting up certificate auto-renewal..."
|
|
sudo systemctl enable certbot.timer
|
|
sudo systemctl start certbot.timer
|
|
|
|
echo ""
|
|
echo "Restarting service..."
|
|
sudo systemctl restart qbpos-help
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "HTTPS Setup Complete!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Your server is now accessible at:"
|
|
echo " https://$DOMAIN/"
|
|
echo ""
|
|
echo "Certificate auto-renewal is enabled."
|
|
echo "Certbot will automatically renew before expiry."
|