SSL证书自动免费领取并续签

SSL证书 SSL免费 SSL证书领取 SSL证书续签 SSL免费续签

嫌弃证书发放和续签比较麻烦或不方便的情况下,可以考虑用这个方法:

在Linux服务器上保存一份这个文件(比如/usr/local/bin/install_ssl):


#!/bin/bash

read -p "请输入你的域名(如 example.com): " DOMAIN


if [ -z "$DOMAIN" ]; then

    echo "❌ 域名不能为空!"

    exit 1

fi


if [ -f /etc/debian_version ]; then

    OS="debian"

elif [ -f /etc/redhat-release ]; then

    OS="centos"

else

    echo "❌ 不支持的系统,请使用 Debian/Ubuntu 或 CentOS/Rocky/AlmaLinux"

    exit 1

fi


if ! nc -z 127.0.0.1 80 >/dev/null 2>&1; then

    echo "⚠️ 警告:80 端口未监听,请确保 Nginx 正常运行且域名已解析到本机!"

    read -p "是否继续?(y/n): " CONFIRM

    if [ "$CONFIRM" != "y" ]; then

        exit 1

    fi

fi

if ! command -v certbot >/dev/null 2>&1; then

    echo "📦 正在安装 Certbot..."

    if [ "$OS" == "debian" ]; then

        apt update

        apt install -y certbot python3-certbot-nginx

    elif [ "$OS" == "centos" ]; then

        yum install -y epel-release

        yum install -y certbot python3-certbot-nginx

    fi

else

    echo "✅ Certbot 已安装,跳过安装步骤"

fi


echo "开始为 $DOMAIN 申请证书..."

dot_count=$(echo "$DOMAIN" | awk -F'.' '{print NF-1}')

if [ "$dot_count" -eq 1 ]; then

    certbot certonly --nginx -d "$DOMAIN" -d "www.$DOMAIN" --non-interactive --agree-tos -m admin@$DOMAIN

else

    certbot certonly --nginx -d "$DOMAIN" --non-interactive --agree-tos -m admin@$DOMAIN

fi


if [ $? -eq 0 ]; then

    echo "✅ SSL 证书申请成功!"

    echo "证书路径:/etc/letsencrypt/live/$DOMAIN/fullchain.pem"

    echo "私钥路径:/etc/letsencrypt/live/$DOMAIN/privkey.pem"

    echo ""

    echo "请在 Nginx 配置中添加以下内容:"

    echo "ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem;"

    echo "ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem;"

else

    echo "❌ SSL 证书申请失败,请检查域名解析或端口开放情况!"

    exit 1

fi


if ! crontab -l | grep -q 'certbot renew --quiet'; then

  (crontab -l 2>/dev/null; echo "0 3 * * * certbot renew --quiet") | crontab -

  echo "已添加自动续期任务"

else

  echo "自动续期任务已存在,跳过添加"

fi


certbot renew --dry-run


echo "============================"

echo " 申请完成 ✅"

echo " 自动续期已配置"

echo "============================"


保存好后,需要给一下可执行权限:

chmod +x /usr/local/bin/install_ssl

然后运行脚本:install_ssl,按提示输入域名后会有如下提示:

a4/9ae997abbf7c921ed71f5e2f461741.png


然后在nginx里配置一下证书路径(比如下面这种):


9c/2110dcaaa3c7a702d4539fa46a46e6.png


然后重启nginx,就可以了!



网站公告

承接各种网站、小程序、H5、公众号、CMS、CRM、OA等系统开发、维护、托管、外包等服务! 邮箱: 3163316168@qq.com