您的位置:

Letsencrypt泛域名

一、宝塔面板与Letsencrypt泛域名

宝塔面板是一款非常流行的服务器运维管理软件,它为我们提供了很多便利。其中之一就是它可以方便地集成Letsencrypt泛域名证书,让我们的网站免费支持HTTPS。

1、宝塔面板的安装和配置

// 安装宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

依次选择 LEMP 或 LAMP 或 TP + Nginx 或 TP + Apache 环境即可

2、开启并配置Letsencrypt泛域名

// 开启 SSL
cd /www/server/panel/ && ./bin/panel ssl

输入邮箱、接受条款、输入确认域名即可完成Let's Encrypt SSL证书的申请

3、自动续签

保证证书不会自动过期,我们需要设置一个自动续签的计划任务,每天执行一次。

// 打开计划任务,添加以下命令,确保宝塔面板目录下的脚本执行即可
crontab -e
0 0 * * * /www/server/panel/acme.pl -f 

二、Letsencrypt泛域名自动续签

自动续签是保证证书长期有效的重要步骤。以下是自动续签的详细步骤:

1、安装certbot脚本

// 依次执行以下命令即可
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto

2、制定任务计划

// 依次执行以下命令
crontab -e
# 每天10点执行续期脚本,续期成功后重启nginx
0 10 * * * /usr/local/bin/certbot-auto renew --quiet --no-self-upgrade --renew-hook "systemctl reload nginx"

三、使用双波束负载均衡

在使用Letsencrypt泛域名时,我们可以使用双波束负载均衡策略来提高性能和可靠性。

1、安装和配置

// 安装Nginx和keepalived
yum install nginx keepalived -y
// 配置双波束负载均衡
cat > /etc/keepalived/check_letsencrypt_ssl.sh <<EOF
#!/bin/bash
hostname=\$(hostname)
domain=\$(echo \$hostname | cut -d '.' -f2-)
/path/to/certbot-auto renew
systemctl reload nginx
EOF
chmod +x /etc/keepalived/check_letsencrypt_ssl.sh
cat > /etc/keepalived/keepalived.conf <<EOF
global_defs {
    router_id LB1
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {
        auth_type pass
        auth_pass PASSWORD
    }
    virtual_ipaddress {
        VIRTUAL-IP
    }
    track_script {
        check_letsencrypt_ssl
    }
}
virtual_server VIRTUAL-IP 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    persistence_timeout 50
    protocol TCP
    real_server SERVER1 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server SERVER2 80 {
        weight 1
            TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
EOF
systemctl start keepalived

2、测试负载均衡

我们可以使用 ab 命令模拟并发请求来测试负载均衡的性能。

// 安装ab命令
yum install -y httpd-tools
// 模拟1000个并发请求,请求持续30秒,请求的目标是我们配置的虚拟IP
ab -n 1000 -c 1000 -k -r http://VIRTUAL-IP/ -T text/html -g data.txt

四、结合Docker使用Letsencrypt泛域名

使用Docker可以更加方便地使用Letsencrypt泛域名证书,使我们的开发、测试和生产环境更加一致。

1、安装和配置docker-compose

// 安装docker和docker-compose
yum install -y docker docker-compose
// 开启docker服务
systemctl start docker

2、编写docker-compose.yml配置文件

version: "3.3"
services:
  nginx:
    image: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./logs:/var/log/nginx
      - ./www:/usr/share/nginx/html
      - ./letsencrypt:/etc/letsencrypt/live
      - ./dhparams.pem:/etc/nginx/dhparams.pem
    ports:
      - "80:80"
      - "443:443"
  certbot:
    image: certbot/certbot
    volumes:
      - ./letsencrypt:/etc/letsencrypt
      - ./www:/var/www
      - ./logs:/var/log/nginx
    command: certonly --webroot --webroot-path=/var/www --email EMAIL --agree-tos -d DOMAIN

3、启动Docker容器

// 启动Docker容器
docker-compose up -d

总结

Letsencrypt泛域名为我们提供了免费的SSL证书服务,使我们的网站免费支持HTTPS。在使用过程中,我们可以通过宝塔面板方便地开启和配置证书,并使用自动续签功能保证证书长期有效。我们也可以通过双波束负载均衡和Docker容器来提高性能和可靠性。一句话:免费好用,推荐使用。