公司本来有网站sqlynx.com是http运行的,但因为产品出海,基本上都要求使用https,但又需要兼容已有的http服务,所以我自己尝试做了一次https的部署,目前是正常可用的。
目录
[步骤 1:安装 Nginx](#步骤 1:安装 Nginx)
[步骤 2:获取 SSL 证书](#步骤 2:获取 SSL 证书)
[步骤 3:手动配置 Nginx](#步骤 3:手动配置 Nginx)
[步骤 4:测试 Nginx 配置](#步骤 4:测试 Nginx 配置)
[步骤 5:验证 HTTPS 部署](#步骤 5:验证 HTTPS 部署)
有兴趣的同学也可以拿我们的线上网站sqlynx.com进行一下测试,http和https都是可以支持的。
使用 Nginx 部署 HTTPS 是确保网站安全的一项重要措施。
以下是如何使用 Nginx 部署 HTTPS 的详细步骤,包括获取 SSL 证书、配置 Nginx 和测试配置。
步骤 1:安装 Nginx
如果尚未安装 Nginx,请先安装 Nginx。
在 Debian/Ubuntu 系统上:
bash
sudo apt update
sudo apt install nginx
在 CentOS/RHEL 系统上:
bash
sudo yum install epel-release
sudo yum install nginx
步骤 2:获取 SSL 证书
因为我们的网站是部署在腾讯云上的,原来腾讯云是一次可以申请一年的免费证书,从2024年4月25日起只能3个月了,这个确实太恶心了。
主要是不想折腾了,花了99元一年买了一年的证书服务。
具体的证书购买方式就不描述了,有钱买证书哪都可以,以下是我们购买证书的地方。
步骤 3:手动配置 Nginx
如果你已经有 SSL 证书文件(例如从其他 CA 获取的证书),可以手动配置 Nginx。
将你的 SSL 证书文件和私钥文件上传到服务器。通常,它们存放在 /etc/ssl/certs/
和 /etc/ssl/private/
目录中。
编辑 Nginx 配置文件。打开你的网站配置文件(例如 /etc/nginx/sites-available/default
或 /etc/nginx/nginx.conf
),并添加如下内容:
-
listen 443 ssl 这行可以让http和https都可以使用
-
ssl_certificate /etc/ssl/certs/yourdomain.com.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.com.key;
上面两行是主要的证书的配置,其他的没发现什么需要注意的。
bash
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# Redirect HTTP to HTTPS
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/ssl/certs/yourdomain.com.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
步骤 4:测试 Nginx 配置
在重新加载 Nginx 之前,先测试配置文件是否有语法错误:
bash
sudo nginx -t
如果配置正确,重新加载 Nginx:
bash
sudo systemctl reload nginx
步骤 5:验证 HTTPS 部署
打开浏览器,访问 https://www.sqlynx.com
,确保网站通过 HTTPS 正常加载,并且 SSL 证书有效。
结语
通过以上步骤,你应该已经成功地在 Nginx 上部署了 HTTPS。使用 HTTPS 可以有效地保护用户数据,提升网站的安全性和可信度。如果你有更多的定制需求,可以参考 Nginx 官方文档进行进一步的配置和优化。