how_to_makeSSL证书

pepper 2026-04-07

这篇博客介绍了安装SSL证书,防止“裸奔”在互联网——用户信息可能被窃取,搜索引擎排名也会大打折扣。一张SSL证书,不仅能实现HTTPS加密,还能提升用户信任度!

一、SSL证书怎么选?

看域名数量

  • 单域名:保护1个主域名(如 http://www.company.com)。

  • 通配符:保护主域名+所有子域名(如 *.http://company.com)。

  • 多域名:一张证书覆盖多个独立域名(如 http://company.com + http://shop.company.net)。

二、托管平台(不建议)

由于一开始是新手,自己不会,所以在网上找了免费签发版本。申请后五分钟内可以发放,参考 OHTTPS 的免费版 HTTPS 证书 / SSL 证书。其中,OHTTPS 的免费版 HTTPS证书 / SSL 证书是由 Let’s Encrypt 颁发。

0. DNS授权

由于这个托管平台需要帮你管理,它需要有很多权限,其中我们按照它的指南开始操作,以下选择DNS授权验证模式,可以参考它的指南,但是有点旧了。

alt text

1. 新建RAM用户

访问阿里云的链接如下:https://ram.console.aliyun.com/overview

alt text

2. 保存AccessKey ID和AccessKey Secret

alt text

阿里云中的获取方式与之前的传统不一样,在用户新建完成后,及时保存 AccessKey IDAccessKey Secret

alt text

3. 为用户添加权限

选择新建的ohttps-dns用户,为该用户添加[AliyunDNSFullAccess(管理云解析(DNS)的权限)] 以及 [AliyunYundunCertFullAccess(管理云盾证书服务的权限)] 权限。该权限仅在申请证书时证书提供商 Let’sEncrypt 验证域名所属权使用,以及该权限仅用于上传用户在 OHTTPS 中申请的 HTTPS 证书 / SSL 证书。

alt text

alt text

4. 部署SSL证书

下载证书放到服务器上,或者使用平台直接托管一键操作。

alt text

三、 certbot工具配置

在自己的服务器上配置 Let’s Encrypt SSL 证书,最主流、最省心的方案是使用 Certbot 工具。它能自动完成域名验证、证书签发、Web 服务器配置(Nginx/Apache)、自动续期全流程。

1. 安装 Certbot(官方推荐)

用 apt 安装(Ubuntu/Debian)

sudo apt update
sudo apt install certbot python3-certbot-nginx python3-certbot-apache -y

2.申请 & 自动配置证书

Nginx 服务器(全自动,最常用):Certbot 会自动修改 Nginx 配置、开启 HTTPS、强制 HTTP→HTTPS 重定向。

certbot --nginx -d 你的域名.com --non-interactive --agree-tos -m 你的邮箱@xxx.com

这条命令会:自动验证域名 / 自动签发证书 / 自动修改 Nginx 配置 / 自动开启 HTTPS / 自动把 80 重定向到 443 / 自动配置自动续期任务

执行后会问你 3 个问题: 1. 输入邮箱:随便填一个你的邮箱 2. 同意协议:输入 Y 3. 是否共享邮箱:输入 N 4. 最后问是否重定向:输入 2(自动 HTTP 转 HTTPS)

3、交互过程(执行命令后)

成功后会提示:

  • 证书路径:/etc/letsencrypt/live/yourdomain.com/ 也可以手动指定移动到例如 /etc/nginx/ssl/yourdomain.com
  • 关键文件:
    • fullchain.pem(证书链)
    • privkey.pem(私钥)
# 复制 Let's Encrypt 证书到这个目录(自动续期后也需要重新复制)
sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /etc/nginx/ssl/yourdomain.com/
sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /etc/nginx/ssl/yourdomain.com/

# 设置正确权限
sudo chmod 600 /etc/nginx/ssl/yourdomain.com/*
sudo chown nginx:nginx /etc/nginx/ssl/yourdomain.com/*  # 如果是 Ubuntu 则是 www-data:www-data

4. 配置

打开配置文件:

sudo vi /etc/nginx/conf.d/vllm-https.conf

把下面内容完整粘贴进去(只需要把 yourdomain.com 换成你的真实域名):


# HTTPS 安全配置
server {
    listen 443 ssl http2;
    server_name yourdomain.com;  # 改成你的域名

    # 你要求的证书路径
    ssl_certificate /etc/nginx/ssl/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.com/privkey.pem;

    # 安全优化(官方推荐)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 这里是你的 vllm 代理配置
    location / {
        proxy_pass http://127.0.0.1:8000;  # vllm 默认端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 大模型接口需要长连接
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
    }
}

# 强制 HTTP 跳转到 HTTPS(必开)
server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

5. 测试 + 重启 Nginx

# 测试配置是否正确
sudo nginx -t

# 重启生效
sudo systemctl restart nginx

6. 自动续期证书(必须配置)

因为你手动移动了证书,Certbot 自动续期后不会同步到 /etc/nginx/ssl,所以要加一个自动复制脚本:

sudo vi /etc/letsencrypt/renewal-hooks/deploy/copy-to-nginx-ssl.sh

粘贴内容:

#!/bin/bash
DOMAIN="yourdomain.com"
cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/nginx/ssl/$DOMAIN/
cp /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/nginx/ssl/$DOMAIN/
chmod 600 /etc/nginx/ssl/$DOMAIN/*
systemctl reload nginx

加执行权限:

sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/copy-to-nginx-ssl.sh