前言

最近在捣鼓服务器相关的东西,简单记录一下如何申请免费SSL证书,并在nginx中配置,域名什么的自备,就不提及了


正文

  1. 搜索并登录到阿里云数字证书管理服务
  2. 选择「SSL证书管理」 -> 「个人测试证书(免费证书)」 -> 「立即购买」,完成免费证书购买(有效期1年,最多签发20个)。,如图

在这里插入图片描述


  1. 返回证书控制台,点击「创建证书」,选择「免费证书」 -> 「证书申请」。
  • 按照要求填写域名信息:

  • 域名:填写需要加密的域名(如 example.com 或 *.example.com)。

  • 验证方式:选择「DNS验证」或「文件验证」(推荐DNS验证,需在域名解析中添加TXT记录)。

  • 提交申请后,根据提示完成域名验证(需几分钟到几小时生效)。

  1. 下载证书(如图)
  • 验证通过后,证书状态变为「已签发」,点击「下载」。

  • 选择「Nginx」格式,下载证书文件(包含 .key 私钥和 .pem 证书文件)。

在这里插入图片描述

  1. 将下载的证书文件上传到服务器的Nginx配置目录(如 /etc/nginx/certs/
# 创建证书目录
sudo mkdir -p /etc/nginx/certs/

# 上传文件(假设本地文件为 example.com.key 和 example.com.pem)
scp example.com.key user@your_server_ip:/etc/nginx/certs/
scp example.com.pem user@your_server_ip:/etc/nginx/certs/
  1. 编辑Nginx配置文件(nginx.conf),增加SSL认证块
server {
    listen 443 ssl;
    server_name example.com www.example.com;

    # 证书路径
    ssl_certificate /etc/nginx/certs/example.com.pem;
    ssl_certificate_key /etc/nginx/certs/example.com.key;

    # 优化SSL配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 其他配置(如root、index等)
    root /var/www/html;
    index index.html;
}

# HTTP重定向到HTTPS
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$server_name$request_uri;
}
  1. 检查并重启Nginx
sudo nginx -t        # 检查语法是否正确
sudo systemctl reload nginx  # 重新加载配置(或重启nginx)

常见问题

  1. 证书不信任
  • 确保证书链完整(阿里云下载的 .pem 文件已包含中间证书)。
  1. Nginx报错
  • 检查证书路径和权限:
sudo chmod 600 /etc/nginx/certs/*
  1. 防火墙未放行443端口
  • 开放443端口:
sudo ufw allow 443/tcp

云服务器去安全组配置规则,放行443端口


结语

总而言之还是蛮简单的,也算是经验,记录一下,有什么问题可以留言,一起讨论

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐