如何将自己的网站配部署SSL证书(配置成HTTPS访问)
HTTPS的概念和原理一文讲解了HTTPS的概念和原理,本文将介绍如何为自己的网站部署SSL证书,并将网站的访问方式置成HTTPS访问。
1. 环境说明
本文以阿里云ECS服务器下的Nginxweb服务器为例,介绍如何为自己的网站部署SSL证书,并将网站的访问方式置成HTTPS访问。详细环境说明如下:
- 网站示例: SunLogging
- 服务器: 阿里云ECS
- 服务器系统: Ubuntu 24.04 LTS
- 博客框架: Hexo
- 网站主题: Volantis
- 证书类型: 阿里云的个人测试证书
- Web服务器: Nginx
2. 购买证书
- 登录数字证书管理服务控制台。
- 在控制台中选择个人测试证书,点击创建证书。

- 填写域名信息并提交申请。

- 按照提示在您的域名DNS服务器上添加用于验证的解析记录。

- 完成验证后,证书将自动签发。
- 注意:
个人测试证书是免费的,有效期为3个月,且需要与域名绑定使用。个人测试证书只能绑定一个域名,如果你的网站是一个主(根)域名+多个二级域名,那只能绑定主域名和默认的www二级域名(如www.sunlogging.com)。- 针对有多个域名(如:
一个主(根)域名+多个二级域名)的情况,可以为每一个域名分别申请和配置独立的个人测试证书。如为sunlogging.com申请一个个人测试证书,为t-book.sunlogging.com也申请一个个人测试证书。
3. 下载证书
- 在
正式证书或个人测试证书(原免费证书)页签下,定位到要下载的SSL证书,在操作列,单击更多。
- 在
下载页签,定位到目标服务器(选择自己对应的服务器类型),在操作列,单击下载。
- 完成下载后,您需要解压对应SSL证书的压缩包获得对应的SSL证书文件。Nginx服务器的证书解压后的文件说明如下:
- domain name.pem:证书文件。
- domain name.key:证书私钥文件。
4. 开放443端口
HTTPS的默认访问端口443,而阿里云默认是禁止443端口访问权限的,所以我们要为实例手动添加安全组,让阿里云给相应的端口和IP放行。该步骤非常重要,若不手动配置,我们将无法通过HTTPS的方式访问我们的网站。
-
依次点击: 云服务器 ECS -> 网络与安全 -> 安全组。 这里应该会有一个系统默认配置的安全组,描述为"System created security group."。这个安全组是你购买ECS服务器后,这个服务初始化时自动配置的。
-
点击这个安全组右侧的“管理规则”,进入配置详情页。

-
点击: 入方向 -> 快速添加

-
勾选“HTTP (80)”后,点击“确定”。

5. 上传证书
-
通过ssh工具登录服务器。
ssh root@your_server_ip -
创建证书目录
# 进入nginx的配置目录
cd /etc/nginx
# 创建证书目录
mkdir cert -
上传证书文件。
有多重方式可以上传证书,如通过FTP工具,Xshell工工具、云助手等。这里我们以阿里云的云助手为例,上传证书文件。
- 登录ECS管理控制台,在左侧导航栏,选择
运维与监控>云助手。在ECS实例页签下的实例列表,选择目标实例,单击操作列的发送文件。
- 选择要上传的证书文件,并填写目标路径(
/etc/nginx/cert),然后点击执行即可。
6. 配置证书
1. 打开nginx配置文件:
# nginx的根配置文件
vim /etc/nginx/nginx.conf
# 或者你的网站的配置文件,如:
/etc/nginx/sites-available/sunlogging
2. 在server模块添加如下配置:
server {
# 监听端口,HTTPS的默认访问端口443
listen 443 ssl;
# 证书文件和证书私钥文件的路径
ssl_certificate /etc/nginx/cert/sunlogging.com.pem;
ssl_certificate_key /etc/nginx/cert/sunlogging.com.key;
# 设置TLS协议
ssl_protocols TLSv1.2 TLSv1.3;
# 监听端口
# listen 80;
# 网站域名
server_name sunlogging.com www.sunlogging.com;
# ...(胜率其他配置)
}
3. 重新加载配置:
# 检查配置文件是否有语法错误
nginx -t
# 热加载,重新加载配置文件
sudo systemctl reload nginx
# 查看nginx服务是否运行
sudo systemctl status nginx
7. 常见问题
7.1. The connection for this site is not secure
1. 问题现象:
The connection for this site is not secure
sunlogging.com uses an unsupported protocol.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH

2. 可能原因:
您的Web服务器可能使用了不安全的协议版本(如SSL 2.0、SSL 3.0、TLS 1.0或TLS 1.1),或者Web服务器配置的TLS协议与操作系统所支持的TLS协议不一致。
3. 解决方案:
在nginx配置中制定TLS协议的版。
# 设置支持的SSL/TLS协议版本
ssl_protocols TLSv1.2 TLSv1.3;