配置 SSL 证书 - HTTPS 安全配置

我们再来看一下网址的左侧,还显示一个”不安全”。

这个问题也是需要解决的,因为我们现在访问的协议是 HTTP,我们要把它切换成 HTTPS

为什么需要 HTTPS?

  • 提升网站安全性,保护用户数据
  • 防止数据被中间人窃取或篡改
  • 提高搜索引擎排名(SEO)
  • 现代浏览器会标记 HTTP 网站为”不安全”

如何配置 HTTPS?

我们需要到阿里云里面去申请一个证书。

申请 SSL 证书

进入证书管理页面

仍然是回到域名控制台,点击 “首页”,然后再次点击 “控制台”

然后我们找到这个 “安全(数字证书管理服务)“,然后点击 “SSL 证书管理”

选择个人测试证书

然后我们找到右侧的 “个人测试证书”(也就是原来的免费证书)。

关于证书类型

因为正式的证书价格比较高,我们用这种测试的证书就行了。

它也是能够正常使用的,只不过它的期限只有三个月,然后我们每三个月来替换一下就行了。

购买证书

在没有证书之前,我们需要点击 “立即购买”

然后选择:

  • 个人测试证书(免费版)
  • 购买的数量是 20
  • 下面的服务是 “无稳定性保障”(其实通常还是比较稳定的)
💡

因为我这里已经买过了,所以不能再次购买。

勾选之后,点击 “立即购买” 就行了。

创建证书

购买完成之后,然后我们再回到这个界面,然后 “创建证书”

创建证书的时候:

  • 选择 “个人测试(免费证书)”
  • 这里会有一个数量
  • 输入我们的域名:xiaomiaojizhang.top
  • 数量是 1
⚠️

快捷签发一定要勾选上!

下面的信息基本上都是默认的,然后点击 “提交审核”

等待审核

点击之后,现在提示我们:

已经成功提交到 CA 公司,请您保持电话畅通,并及时查阅邮箱中来自 CA 公司的电子邮件。

通常不会打电话的哈,我们点击 “确认” 就行了。

然后这里的状态是 “申请审核中”,大概几分钟的时间可能就审核好了,非常的快。

我们只需要过一会刷新一下就行了。

下载证书

我们看到刚才有邮箱提示已经审核通过了,刷新一下看一下,显示 “已签发”

  • 绑定的域名就是我们申请的域名
  • 到期时间是 4 月 13 号

然后我们点击右侧的 “更多”“下载”

然后找到这个 Nginx,点击右侧的 “下载”

配置 SSL 证书到 Nginx

上传证书文件

下载完成之后,我们把这个文件复制一下,暂时先放到安装包这个目录下面吧,然后解压缩一下。

打开看一下,里面有两个文件:

  • 一个是 .key 后缀的
  • 一个是 .pem 后缀的

接下来我们再回到 Xftp,然后在 home 目录下面新建一个文件夹,比如我们的文件夹名称就叫 ssl

双击进入,然后把这两个文件传过去。

那么现在这两个证书文件就放到了服务器上,放在了 /home/ssl/ 目录下面。

配置 Nginx

接下来,我们需要把这两个证书配置到 Nginx 中。

我们打开 Nginx 的配置目录,默认是在 /etc/ 目录下面:

cd /etc/nginx

回车之后,我们就打开了 Nginx 的配置目录。

这里面有一个 nginx.conf,这个是 Nginx 关键的配置。

查看默认配置

我们来看一下这个配置文件,这里面的配置比较多,我们可以先忽略,主要看下面的:

这里有个 server,它默认监听的是 80 端口

监听到 80 端口的请求之后,它会把页面返回给用户:

server {
    listen 80;
    root /usr/share/nginx/html;
}

也就是我们之前在页面上看到的那个默认的文件,它会把这个目录下面的页面返回到页面上。

我们可以打开看一下,这个目录下有一个 index.html,那么这个页面打开之后,其实就是我们在浏览器看到的这个页面,是一样的。

理解 include 配置

我们再回到这个配置文件,还有一个关键的是这个 include:

include /etc/nginx/conf.d/*.conf;

include 是什么意思呢?

也就是说它会包含后面的这个目录下的所有的 .conf 为后缀的配置文件,也就是说这个目录下的所有配置文件都会生效。

我们再打开一下这个目录看一下,这个目录下没有任何的配置文件。

创建 80 端口配置(HTTP 转 HTTPS)

我们需要在 conf.d 目录下创建配置文件。

创建 80.conf 文件:

server {
    listen 80;
    server_name xiaomiaojizhang.top www.xiaomiaojizhang.top;
    return 301 https://xiaomiaojizhang.top$request_uri;
}

这个配置是什么意思呢?

其实就是当有用户访问 80 端口的时候,我们把它转发到 443 的端口,转发到 HTTPS。

这样能够确保用户访问的一定是 HTTPS 的请求。

后面的 $request_uri 意思就是如果这个请求后面携带有其他的参数的话,保持不变。

创建 443 端口配置(HTTPS)

配置好 80 端口之后,我们还要配置一个 443 的端口。

因为这个配置文件比较长,我们就不去手写了。

创建 443.conf 文件:

server {
    listen 443 ssl;
    server_name xiaomiaojizhang.top www.xiaomiaojizhang.top;
    
    # SSL 证书配置
    ssl_certificate /home/ssl/xiaomiaojizhang.top.pem;
    ssl_certificate_key /home/ssl/xiaomiaojizhang.top.key;
    
    # SSL 安全配置
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    
    # 静态资源配置
    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

关键配置说明:

  • listen 443 ssl - 监听 443 端口
  • server_name - 域名配置
  • ssl_certificate - 证书文件路径
  • ssl_certificate_key - 证书密钥路径
  • location / - 静态资源目录
⚠️

注意修改证书路径

确保证书文件名和路径与你实际下载的文件一致:

  • /home/ssl/xiaomiaojizhang.top.pem
  • /home/ssl/xiaomiaojizhang.top.key

修改主配置文件

然后我们再回到这个 Nginx 的主配置,把它配置的默认的 80 端口的监听给去掉。

然后下面的 443 的 Demo 也给它去掉(它把它全注释掉了,我们不需要它)。

那么整个配置文件就是这样的:

  • 一个 HTTP 的服务
  • 然后下面包含了 conf.d 目录下的所有配置
  • 这个目录下就会包含 80 和 443 端口的配置

上传配置文件

然后把配置文件上传:

  1. 首先是 80.conf443.conf 传过去
  2. 然后把原来的 default.confexample.conf 给删掉(如果有的话)
  3. 然后再回到 Nginx 的主目录下面,把修改后的 nginx.conf 传过去

重载 Nginx 配置

配置修改好了之后,它还没有生效,我们需要去执行一个命令:

nginx -s reload

遇到报错怎么办?

执行之后,这里报错了,提示没有这个文件。

那么应该是我们文件配置错了,我们看一下文件的名称。

⚠️

常见错误

确保证书文件名正确,复制实际的文件名粘贴到配置文件中:

  • 证书文件:.pem 后缀
  • 密钥文件:.key 后缀

修改 443.conf:

ssl_certificate /home/ssl/实际文件名.pem;
ssl_certificate_key /home/ssl/实际文件名.key;

保存一下,然后再重新传一下。

这时候我们再执行一下试试:

nginx -s reload

执行成功了!没有报错。

验证配置

这时候,我们刷新一下页面,访问 xiaomiaojizhang.top

⚠️

关于备案提示

我们看到现在它提示:“该网站暂时无法访问,根据工信部的相关法律,已对该网站进行阻断显示”。

也就是我们当前的网站还没有做备案,那么这也是一个正常的页面。

所以我们暂时也没有办法去验证刚才的配置有没有问题。Nginx 没有报错,理论上应该是没有问题的。

我们等后面备案完了之后,可以再去测试,如果有问题的话再去修改。

配置文件说明

80 端口配置文件(HTTP 转 HTTPS)

server {
    listen 80;
    server_name xiaomiaojizhang.top www.xiaomiaojizhang.top;
    return 301 https://xiaomiaojizhang.top$request_uri;
}

443 端口配置文件(HTTPS)

server {
    listen 443 ssl;
    server_name xiaomiaojizhang.top www.xiaomiaojizhang.top;
    
    ssl_certificate /home/ssl/xiaomiaojizhang.top.pem;
    ssl_certificate_key /home/ssl/xiaomiaojizhang.top.key;
    
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    
    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

常见问题排查

1. Nginx 重载失败

# 检查配置文件语法
nginx -t
 
# 查看错误日志
tail -f /var/log/nginx/error.log

2. 证书文件路径错误

确保证书文件已正确上传到 /home/ssl/ 目录:

ls -la /home/ssl/

3. 端口未开放

检查云服务器安全组是否开放了 443 端口(HTTPS 端口)。

总结

配置 SSL 证书的关键步骤:

  1. 在阿里云申请个人测试证书(免费,有效期 3 个月)
  2. 下载 Nginx 格式的证书文件(.pem 和 .key)
  3. 上传证书文件到服务器 /home/ssl/ 目录
  4. 配置 Nginx 的 80 端口(HTTP 转 HTTPS)
  5. 配置 Nginx 的 443 端口(HTTPS)
  6. 重载 Nginx 配置使其生效
  7. 等待备案完成后验证配置

下一步

SSL 证书配置完成后,我们需要进行网站备案,才能正常访问网站。


💡

遇到问题?

如果配置过程中遇到任何问题,可以下方微信扫码帮您看下(免费咨询)

相关信息

💬 扫码了解更多信息

客服微信二维码

添加微信

知识星球二维码

加入知识星球