安装
2025/8/23小于 1 分钟
安装
首先假设已经有一个有公网的云服务器,放开所有端口(x,如果有防火墙就找报错然后放行端口)
然后还有一个域名,已经指向了这个云服务器
安装node
- https://deb.nodesource.com/
sudo apt update
sudo apt install curl dirmngr apt-transport-https lsb-release ca-certificates
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs安装pnpm
npm install -g pnpm相关信息
记得可以使用whereis找可执行文件路径
安装nginx
apt update
apt install nginx配置文件在/etc/nginx/nginx.conf
里面会引用其它的配置文件例如
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;sites-enabled只是引用sites-available里的,里面有个default是用来测试nginx的,可以直接删掉,不然会占用80端口
设置开机启动
systemctl enable nginx配置ssl
注意这里只能填localhost不能填127.0.0.1,我也不知道为什么
建议使用acme.sh
# 如果采用standalone,需要先安装socat以支持
apt install socat
# 安装
curl https://get.acme.sh | sh -s email=my@example.com
# 如果80端口空闲,则直接生成,记得替换mydomain.com
acme.sh --issue -d mydomain.com --standalone它生成了几个文件,其中3个是证书文件,一个是证书密钥,fullchain包含了另外2个证书文件
对于nginx可以这样填
server {
    listen 443 ssl;
    server_name mydomain.com;
    ssl_certificate /root/.acme.sh/mydomain.com_ecc/fullchain.cer;
    ssl_certificate_key /root/.acme.sh/mydomain.com_ecc/mydomain.com.key;
  location / {
    proxy_pass https://localhost:5173;
    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;
    // 如果要支持wss
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
}可以使用 certbot 获得免费的 SSL 证书
sudo apt install certbot这个命令将列出所有的证书,包括其域名、到期日期、证书路径等信息。
certbot certificates生成证书,有效期三个月,你可以在快到期时重新生成证书,记得替换域名
sudo systemctl stop nginx
certbot certonly --rsa-key-size 2048 --standalone --agree-tos -d yourdomainname.info
sudo systemctl start nginx或者
certbot certonly --rsa-key-size 2048 --nginx --agree-tos -d yourdomainname.info如果想在证书到期或者出现其它问题时接收通知,可以设置邮件地址--no-eff-email --email user@yourdomainname.info
GPT给出的参数说明
- certonly:指示 Certbot 仅生成 SSL/TLS 证书,并不会自动安装或配置任何 Web 服务器软件。
- --rsa-key-size 2048:指定证书的 RSA 密钥大小为 2048 位。较大的密钥通常更安全,但会对性能产生一定影响。
- --standalone:指示 Certbot 使用独立模式进行验证。在这种模式下,Certbot 将启动自己的 Web 服务器以验证您的域名,并在验证完成后关闭该服务器。请注意,这意味着您的 Web 服务器必须在证书更新期间停止,以避免端口冲突。- 注:如果在使用 nginx,可以不使用--standalone,而使用--nginx来告诉 certbot 使用 nginx 插件
 
- 注:如果在使用 nginx,可以不使用
- --agree-tos:指示您同意 Let's Encrypt 的服务条款。
- --no-eff-email:指示您不希望接收来自 Let's Encrypt 的效率改进电子邮件。
- --email user@yourdomainname.info:指定您的电子邮件地址,以便在证书到期或其他问题时接收通知。
- -d yourdomainname.info:指定您要为其生成 SSL/TLS 证书的主要域名。如果您想要为多个域名生成证书,则可以在- -d参数后列出这些域名,中间用空格分隔。
在网页上打开https://yourdomainname.info:8448应该能访问了
设置自动更新证书
首先
sudo certbot renew --nginx --dry-run- --nginx表示使用 nginx 插件进行更新- apt install python3-certbot-nginx
 
这将执行一个模拟运行,以确保在实际更新证书之前,一切都可以正常工作。
sudo crontab -e在末尾添加以下行,这将在每天3:30检测证书是否可以更新,如果离过期不到30天,更新证书
30 3 * * * certbot renew --nginx --quiet --post-hook "systemctl reload nginx"- --quiet参数使 Certbot 在执行时不产生任何输出
- --post-hook参数指定在成功更新证书后重新加载 Nginx。