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

相关推荐
czhc11400756632 分钟前
Java1112 基类 c#vscode使用 程序结构
android·java·数据库
倔强的石头_20 分钟前
openGauss实战:Python开发与AI向量数据库应用
数据库
影魅周影21 分钟前
解决mac端pycharm执行allure命令报错:returned non-zero exit status 127
ide·macos·pycharm
马克学长35 分钟前
SSM快递代收系统00pay(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
谅望者1 小时前
数据分析笔记07:Python编程语言介绍
大数据·数据库·笔记·python·数据挖掘·数据分析
面向星辰1 小时前
sql基本增删改查语句汇总
数据库·sql·mybatis
一氧化二氢.h2 小时前
MySQL root用户连接错误解决方法
android·数据库·mysql
q***23922 小时前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite
q***33372 小时前
给SQL server数据库表字段添加注释SQL,附修改、删除注释SQL及演示
数据库·sql·oracle
百***22123 小时前
mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案
数据库·sql·mysql