可以的,在 Debian 上用脚本来配置 Nginx + SSL 是完全没问题的,而且很常见。下面按「能不能用脚本」以及「怎么用脚本」给你说明。
你可以在 Debian 上用 Shell 脚本(bash) 一键完成:
适合:公网域名 + Let’s Encrypt
#!/bin/bash
DOMAIN="example.com"
EMAIL="admin@example.com"
# 安装 nginx 和 certbot
apt update
apt install -y nginx certbot python3-certbot-nginx
# 申请证书并自动配置 nginx
certbot --nginx \
-d $DOMAIN \
--non-interactive \
--agree-tos \
-m $EMAIL \
--redirect
✅ 特点:
certbot renew)#!/bin/bash
DOMAIN="localhost"
CRT="/etc/nginx/ssl/$DOMAIN.crt"
KEY="/etc/nginx/ssl/$DOMAIN.key"
mkdir -p /etc/nginx/ssl
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout $KEY \
-out $CRT \
-subj "/C=CN/ST=Local/L=Local/O=Dev/CN=$DOMAIN"
cat > /etc/nginx/sites-available/$DOMAIN <<EOF
server {
listen 443 ssl;
server_name $DOMAIN;
ssl_certificate $CRT;
ssl_certificate_key $KEY;
location / {
root /var/www/html;
index index.html;
}
}
server {
listen 80;
server_name $DOMAIN;
return 301 https://\$host\$request_uri;
}
EOF
ln -s /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
✅ 适合:
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue -d example.com --nginx
适合对 certbot 不喜欢的用户。
0 3 * * * certbot renew --quiet
或 acme.sh 自带 cron。
ufw allow 80,443/tcp
你可以告诉我:
我可以直接给你一份可用的一键脚本。