如何使用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 官方文档进行进一步的配置和优化。

相关推荐
冰红茶兑滴水14 分钟前
MySQL 表的约束
数据库·mysql
cui_win26 分钟前
Redis高可用-Cluster(集群)
数据库·redis·bootstrap
小五Z30 分钟前
MySql--增删改查表设计总结
数据结构·数据库·mysql
我是琦琦琦琦37 分钟前
flink 同步oracle11g数据表到pg库
大数据·postgresql·oracle·flink
XZHOUMIN39 分钟前
网易博客旧文-----XCODE离线帮助文件使用的补充说明
ide·macos·xcode
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
idea 删除本地分支后,弹窗 delete tracked brank
java·ide·intellij-idea
言慢行善1 小时前
idea出现的问题
java·ide·intellij-idea
锐策1 小时前
〔 MySQL 〕数据类型
数据库·mysql
致宏Rex1 小时前
Nginx 负载均衡详解 x Shell 脚本实战
nginx·负载均衡·运维开发
天天要nx2 小时前
D68【python 接口自动化学习】- python基础之数据库
数据库·python