当前位置: 首页 > news >正文

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

公司本来有网站sqlynx.com是http运行的,但因为产品出海,基本上都要求使用https,但又需要兼容已有的http服务,所以我自己尝试做了一次https的部署,目前是正常可用的。

目录

步骤 1:安装 Nginx

步骤 2:获取 SSL 证书

步骤 3:手动配置 Nginx

步骤 4:测试 Nginx 配置

步骤 5:验证 HTTPS 部署

结语


有兴趣的同学也可以拿我们的线上网站sqlynx.com进行一下测试,http和https都是可以支持的。

使用 Nginx 部署 HTTPS 是确保网站安全的一项重要措施。

以下是如何使用 Nginx 部署 HTTPS 的详细步骤,包括获取 SSL 证书、配置 Nginx 和测试配置。

步骤 1:安装 Nginx

如果尚未安装 Nginx,请先安装 Nginx。

在 Debian/Ubuntu 系统上:

sudo apt update
sudo apt install nginx

在 CentOS/RHEL 系统上:

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;

    上面两行是主要的证书的配置,其他的没发现什么需要注意的。

server {listen 80;server_name yourdomain.com www.yourdomain.com;# Redirect HTTP to HTTPSlocation / {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 之前,先测试配置文件是否有语法错误:

sudo nginx -t

如果配置正确,重新加载 Nginx:

sudo systemctl reload nginx

步骤 5:验证 HTTPS 部署

打开浏览器,访问 https://www.sqlynx.com,确保网站通过 HTTPS 正常加载,并且 SSL 证书有效。

结语

通过以上步骤,你应该已经成功地在 Nginx 上部署了 HTTPS。使用 HTTPS 可以有效地保护用户数据,提升网站的安全性和可信度。如果你有更多的定制需求,可以参考 Nginx 官方文档进行进一步的配置和优化。

相关文章:

  • GIT 合拼
  • 14-Kafka-Day03
  • Linux 系统中的 /dev/null 文件
  • HarmonyOS父子组件传递参数
  • ls命令的参数选项
  • 【初阶数据结构】二叉树(附题)
  • 大厂笔试真题讲解—京东23—夹吃棋
  • 线性代数|机器学习-P15矩阵A的低秩变换下的逆矩阵
  • Java中的Socket编程详解
  • 利用nodejs实现图片上传后端,并实现回显
  • 内存优化技巧:让数据处理更高效
  • 【数据结构】排序(下)
  • 前端基础操作1——利用nvm任意切换(管理)node版本
  • Nuxt快速学习开发 - Nuxt3静态资源Assets
  • Vue3 + Ant-Design 中 a-date-picke 实现选择切换年份 没有鼠标光标,输入框内自带‘年’
  • [PHP内核探索]PHP中的哈希表
  • JavaScript-如何实现克隆(clone)函数
  • android图片蒙层
  • AngularJS指令开发(1)——参数详解
  • flutter的key在widget list的作用以及必要性
  • Java读取Properties文件的六种方法
  • Java反射-动态类加载和重新加载
  • MySQL主从复制读写分离及奇怪的问题
  • Python_网络编程
  • Redis中的lru算法实现
  • Spring Cloud Feign的两种使用姿势
  • tensorflow学习笔记3——MNIST应用篇
  • Vue UI框架库开发介绍
  • 反思总结然后整装待发
  • 工程优化暨babel升级小记
  • 世界上最简单的无等待算法(getAndIncrement)
  • 双管齐下,VMware的容器新战略
  • 物联网链路协议
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 国内开源镜像站点
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ‌内网穿透技术‌总结
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #DBA杂记1
  • #pragma 指令
  • #前后端分离# 头条发布系统
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C++17) std算法之执行策略 execution
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (强烈推荐)移动端音视频从零到上手(下)
  • (转)linux 命令大全
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ../depcomp: line 571: exec: g++: not found
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net 基于MiniExcel的导入功能接口示例