nginx实现https安全访问的详细配置过程

文章目录

  • 前言
    • [什么是 HTTP?](#什么是 HTTP?)
    • [什么是 HTTPS?](#什么是 HTTPS?)
    • [HTTP 和 HTTPS 的区别](#HTTP 和 HTTPS 的区别)
    • [为什么 HTTPS 被称为安全的?](#为什么 HTTPS 被称为安全的?)
    • 配置过程

前言

首先我们来简单了解一下什么是http和https以及他们的区别所在.

什么是 HTTP?

HTTP,全称为"超文本传输协议"(Hypertext Transfer Protocol),是用于在客户端和服务器之间传输信息的基础协议。当你在浏览器中输入网址并访问一个网站时,浏览器使用 HTTP 协议与服务器通信,获取网页内容。HTTP 协议是无状态的,也就是说,它不会保存任何之前的请求或响应记录,每次请求都是独立的。

什么是 HTTPS?

HTTPS,即"超文本传输安全协议"(Hypertext Transfer Protocol Secure),是在 HTTP 的基础上增加了安全层的协议。它通过在传输过程中加密数据,确保信息的安全性。HTTPS 使用了 SSL/TLS(安全套接层/传输层安全协议)加密技术,以保护用户的数据不被窃取或篡改。

HTTP 和 HTTPS 的区别

加密与安全:
HTTP: 数据在传输过程中是明文的,任何中间人(如黑客)都可以轻易地窃取或篡改数据。

HTTPS: 数据在传输过程中经过加密处理,即使被截获,数据也无法被解读或篡改。SSL/TLS 加密技术保护数据的隐私性和完整性。


数据完整性:
HTTP: 由于数据未加密,传输过程中可能会被篡改,用户接收到的内容可能与服务器发送的内容不同。

HTTPS: 加密的同时,数据的完整性也得到了保障。数据在传输过程中不会被修改,用户和服务器之间的信息传递保持一致。


身份验证:
HTTP: 没有身份验证,用户无法确认与之通信的服务器是否为合法站点。

HTTPS: 使用数字证书验证服务器的身份。浏览器会检查证书的有效性,确保用户与合法的服务器进行通信。


浏览器指示:
HTTP: 浏览器地址栏中显示普通的"HTTP"标识,可能没有明显的安全提示。

HTTPS: 浏览器地址栏会显示"https://"和一个锁形图标,表明网站使用了加密协议。这为用户提供了安全性确认。


为什么 HTTPS 被称为安全的?

HTTPS 被称为"安全"的原因在于它结合了以下几个关键特点:

加密保护:

HTTPS 使用 SSL/TLS 协议对数据进行加密,确保数据在传输过程中不能被第三方读取或篡改。这种加密机制使得数据即使被截获也无法解读,保护了用户的信息隐私。

数据完整性:

加密还确保数据在传输过程中不会被修改。任何数据篡改行为都会被检测到,从而避免数据被恶意修改。

身份验证:

HTTPS 使用数字证书验证服务器的真实性。用户可以确信他们与合法的、受信任的网站进行通信,防止了中间人攻击。

配置过程

因为是虚拟机环境,所以我们这里使用的是自签名证书,仅仅使用于开发环境和内部网络,如果在工作环境中,请从受信任的证书颁发机构(CA)获取证书

配置自签名证书

初始环境基于

链接: web群集--rocky9.2源码部署nginx1.24的详细过程

1.生成私钥

复制代码
openssl genrsa -out /usr/local/nginx/conf/nginx.key 2048

2.创建证书签名请求(CSR):

复制代码
openssl req -new -key /usr/local/nginx/conf/nginx.key -out /usr/local/nginx/conf/nginx.csr

然后一直回车就行

3.生成自签名证书:

复制代码
openssl x509 -req -days 365 -in /usr/local/nginx/conf/nginx.csr -signkey /usr/local/nginx/conf/nginx.key -out /usr/local/nginx/conf/nginx.crt

4.在nginx配置文件中配置ssl证书和私钥的路径

先创建一个测试页面

复制代码
echo web1 > /usr/local/nginx/html/index.html

然后更改配置文件

复制代码
vim /usr/local/nginx/conf/nginx.conf
\ 复制代码
server {
        listen  443 ssl;
        server_name localhost;
        ssl_certificate /usr/local/nginx/conf/nginx.crt;
        ssl_certificate_key /usr/local/nginx/conf/nginx.key;

        location / {
            root   html;
            index  index.html index.htm;
        }
}

其实就是创建了一个新的server块,监听443端口以及添加了用来指定证书和私钥的路径

复制代码
ssl_certificate /usr/local/nginx/conf/nginx.crt;
ssl_certificate_key /usr/local/nginx/conf/nginx.key;

重启nginx使配置生效

复制代码
systemctl restart nginx

浏览器访问

复制代码
https://192.168.10.11/

因为使用的是自签名证书而不是从受信任的证书颁发机构(CA)中获取的,所以会显示链接不安全,选择高级

继续访问就行

就能看到测试页面了

相关推荐
分布式存储与RustFS27 分钟前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
zhengfei61135 分钟前
CVE-2026-98432:Linux 内核 TCP 释放后重用漏洞,CVSS 9.8 但补丁覆盖极不均衡
linux·运维·tcp/ip
逐流人1 小时前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
xyzzklk1 小时前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
IT规划师1 小时前
API 安全三支柱:认证、防篡改、防重放的工程实践
安全·api
叼烟扛炮3 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
johnsong9 小时前
AI前沿日报 · 2026-10-31 | 安全失守——当AI工具被下毒、当云端门户洞开
人工智能·安全
飞飞传输11 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
Ruiery11 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器
测试界的小码农12 小时前
【Linux 命令实战(01):认识 Linux 终端,从零掌握第一个命令】
linux·运维·服务器