温馨提示×

debian nginxssl能否用脚本

小樊
42
2026-10-05 15:37:17
栏目: 云计算

可以的,在 Debian 上用脚本来配置 Nginx + SSL 是完全没问题的,而且很常见。下面按「能不能用脚本」以及「怎么用脚本」给你说明。


一、能不能用脚本?✅ 可以

你可以在 Debian 上用 Shell 脚本(bash) 一键完成:

  • 安装 Nginx
  • 申请 SSL 证书(Let’s Encrypt / 自签)
  • 配置 HTTPS
  • 自动续期

二、常见脚本方案

方案 1:使用 certbot 自动脚本(推荐)

适合:公网域名 + 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

✅ 特点:

  • 自动改 nginx 配置
  • 自动开启 80 → 443 跳转
  • 自带续期(certbot renew)

方案 2:自签 SSL 脚本(内网/测试)

#!/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

✅ 适合:

  • 内网
  • 测试环境
  • 不想用公网证书

方案 3:ACME.sh(轻量、可脚本化)

curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue -d example.com --nginx

适合对 certbot 不喜欢的用户。


三、自动续期(脚本可定时)

0 3 * * * certbot renew --quiet

或 acme.sh 自带 cron。


四、注意事项 ⚠️

  1. 域名必须解析到服务器
  2. 80 端口必须开放
  3. Debian 版本建议:
    • Debian 11 / 12
  4. 防火墙:
    ufw allow 80,443/tcp
    

五、你需要哪种脚本?

你可以告诉我:

  • ✅ 公网域名 / 内网
  • ✅ 是否用 Let’s Encrypt
  • ✅ 单站点 / 多站点
  • ✅ Debian 版本

我可以直接给你一份可用的一键脚本。

0 踩