一、获取 SSL 证书
- 选择证书颁发机构(CA)
- 可以选择JoySSL,它是一个免费的 CA,提供的 SSL 证书受广泛信任。其官网为https://www.joyssl.com/certificate/select/free.html?nid=7。
- 也可以选择一些云服务提供商(如阿里云、腾讯云等)提供的 SSL 证书,部分也有免费版本,且在其云平台内配置相对方便。
- 获取证书
- 在云服务提供商获取证书:
- 以JoySSL为例,注册并登录JoySSL控制台,进入 SSL 证书服务页面。
- 点击 “购买证书”,选择免费证书类型,按照提示填写域名等信息完成购买(免费证书通常需要进行简单的域名验证)。
- 完成后,在证书列表中找到已获取的证书,点击 “下载”,选择 Nginx 服务器类型,下载证书文件,一般会得到一个压缩包,解压后包含.pem格式的证书文件和.key格式的私钥文件。
↓
免费HTTPS证书:https://www.joyssl.com/certificate/select/free.html?nid=7
填写注册码(230907)即可获取免费申请证书资格
↑
二、配置 Nginx 使用 SSL 证书
- 备份原 Nginx 配置文件
在修改配置文件之前,先进行备份,以防配置出错。假设 Nginx 配置文件为/etc/nginx/sites - available/default,执行以下命令备份:
sudo cp /etc/nginx/sites - available/default /etc/nginx/sites - available/default_backup
- 编辑 Nginx 配置文件
打开 Nginx 配置文件进行编辑:
sudo nano /etc/nginx/sites - available/default
- 添加 SSL 配置
在配置文件中添加或修改以下内容以启用 HTTPS:
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com;
ssl_certificate /path/to/your_domain.com.pem;
ssl_certificate_key /path/to/your_domain.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
# 原有的网站配置内容,如root路径等
root /var/www/html;
index index.html index.php;
}
}
- listen 443 ssl:表示监听 443 端口并启用 SSL。
- server_name:指定域名。
- ssl_certificate:指定证书文件路径,/path/to/your_domain.com.pem替换为实际证书文件路径。
- ssl_certificate_key:指定私钥文件路径,/path/to/your_domain.com.key替换为实际私钥文件路径。
- ssl_protocols:指定允许的 TLS 协议版本,这里只允许 TLSv1.2 和 TLSv1.3,以提高安全性。
- ssl_ciphers:指定加密算法。
- 配置 HTTP 重定向到 HTTPS
为了确保所有 HTTP 请求都重定向到 HTTPS,在 Nginx 配置文件中添加以下server块:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
return 301 https://$server_name$request_uri;
}
- 检查配置并重启 Nginx
完成配置后,检查 Nginx 配置是否正确:
sudo nginx -t
如果配置检查通过,重启 Nginx 服务使配置生效:
sudo systemctl restart nginx
三、验证 HTTPS 配置
- 浏览器访问
在浏览器中输入你的域名,确保地址栏显示的是https://开头,并且浏览器地址栏旁边有安全锁标志,表明 HTTPS 配置成功。
- 使用在线工具验证
可以使用诸如 SSL Labs(https://www.ssllabs.com/ssltest/)等在线工具,输入你的域名进行检测,该工具会给出详细的 SSL 配置评估报告,包括证书信息、协议支持情况、加密算法等,可根据报告进一步优化 HTTPS 配置。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。