如何使用nginx部署https网站(亲测可行)

公司本来有网站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),并添加如下内容:

  1. listen 443 ssl 这行可以让http和https都可以使用

  2. 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 官方文档进行进一步的配置和优化。

相关推荐
码小跳21 分钟前
软件无法连接MySql数据库
数据库·mysql
阳洞洞3 小时前
https和http有什么区别
网络协议·http·https
孙克旭_5 小时前
day045-nginx跳转功能补充与https
linux·运维·nginx·https
云游5 小时前
通过HTTPS访问Harbor2.13.1 的配置
https·harbor
晋阳十二夜6 小时前
【压力测试之_Jmeter链接Oracle数据库链接】
数据库·oracle·压力测试
you秀7 小时前
HTTPS通信流程:SSL/TLS握手全解析
网络协议·https·ssl
GDAL8 小时前
Node.js v22.5+ 官方 SQLite 模块全解析:从入门到实战
数据库·sqlite·node.js
DCTANT9 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
2501_915921439 小时前
iOS IPA 混淆实测分析:从逆向视角验证加固效果与防护流程
websocket·网络协议·tcp/ip·http·网络安全·https·udp
2501_915918419 小时前
打造可观测的 iOS CICD 流程:调试、追踪与质量保障全记录
websocket·网络协议·tcp/ip·http·网络安全·https·udp