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

Nginx part3 创建一个https的网站

目录

HTTPS

公钥和密钥

加密解密方式:

https搭建步骤

强调一下

1、准备环境

2、配置文件

3、制作证书

4、进行设置


HTTPS

啥是https,根据百度:HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份保证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。所以可以说https是一个在网站上的加密方法

之前我们拿nginx搭的网站用的协议是http的,所以之前的网站的保密性不是特别高那现在就用nginx来搭建一个https网站

公钥和密钥

公钥:公共密钥 开放

密钥:私有密钥 保密

加密解密方式:

jack发信息给marry

       1、 jack用自己的公钥对信息进行加密传送给marry,marry用jack的私钥进行解密

        公(j)➡️私(j)        不可行:因为用公钥进行加密,公钥一般可以在网站上下载,但私钥在自己的电脑上,如果对方离得远无法进行拷贝,那就不可行

       2、jack用marry的公钥进行加密发给marry,marry用自己的私钥解密

        公(m)➡️私(m) 可行 很私密因为对方的公钥可以下载,对方的私钥下载不了,,用对方的公钥进行加密,则对方要用自己的私钥进行解密,相当私密

        3、jack用自己的私钥进行加密发给marry,marry用jack的公钥进行解密

        私(j)➡️公(j) 不可行 毫无私密性:因为拿自己的私钥进行加密后,解密需要公钥,而公钥都可以在互联网上下载到,所以所有人都可以解密信息

        4、jack用marry的私钥进行加密,marry用自己的公钥进行解密

        不可行,jack无法获得对方的私钥,无法进行加密

所以根据以上可以得到最好的加密方法就是第二种2(对公加密,对私解密

那么https的大致分为三个阶段
(1)认证服务器:浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构,存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移除我们不信任的CA机构。

(2)协商会话密钥:客户端在认证完服务器,获得服务器的公钥之后,利用该公钥与服务器进行加密通信,协商出两个会话密钥,分别是用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。在已有服务器公钥,可以加密通讯的前提下,还要协商两个对称密钥的原因,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。

(3)加密通讯:此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。这样网路上的其它用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而保证了数据的私密性和完整性

https搭建步骤

强调一下

key是私钥文件

csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名

crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

1、准备环境

还是之前的nginx,在linux上下好nginx后(记得启动nginx,以及开机自启动,关闭防火墙),输入指令nginx -V,注意是大写的V,小写的v只能显示版本啥的,大写的还会显示其编译器以及带有的模块

在显示出来的模块里寻找是否有一个“--with-http_ssl_module”若没有则需要安装ssl模块,则需要输入yum install mod_ssl即可

2、配置文件

        证书文件:/.../xxxx.crt结尾——公钥

        私钥文件:/.../xxxx.key结尾——私钥

        (证crt,私key)

 进入nginx的配置文件里“ vim etc/nginx/nginx.conf " 找到server板块,你可以在里面看到http的设置和https的设置(https,没设置的话是被注释掉的)

红线前的为之前所设置的http网站的内容,红线下的则是还未设置的https的内容,设置前需要知道非对称加密算法

Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;            #监听端口号
#        listen       [::]:443 ssl http2;
#        server_name  _;                        #域名
#        root         /usr/share/nginx/html;    #网页的位置
#
#        ssl_certificate "/etc/pki/nginx/server.crt";    #crt结尾就是证书的路径
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";    #key结尾就是私钥的路径
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }}

首先在根目录下“/”创建一个目录及文件:mkdir -p /www/wy      然后往这个wy的文件里传输html文件

3、制作证书

将证书制作到etc目录下的nginx里

制作私钥使用命令:openssl genrsa -aes128 2048 > /etc/nginx/wy.key

openssl genrsa -aes128 2048 > /etc/nginx/wy.key
openssl——安装的模块里的指令
genrsa——rsa 算法
-aes128——加密位数
2048——设置
>——输出
/etc/nginx/wy.key——输出的位置

制作好后,需要对私钥加密,就需要输入密码,制作好的私钥就在/etc/nginx里,可以用cat来查看

制作证书使用的命令:

openssl req -utf8 -new -key /etc/nginx/wy.key -×509 -days 365 -out /etc/nginx/wy.crt

openssl req -utf8 -new -key /etc/nginx/wy.key -x509 -days 365 -out /etc/nginx/wy.crtopenssl——调用的命令
req——需要
-utf8——用到的字符集
-new——新的
-key /etc/nginx/wy.key——该证书所匹配的私钥位置
-x509——证书的协议
-days 365——证书的有效期
-out /etc/nginx/wy.crt——将证书输出的位置 扩展名为crt

证书的信息还需要录入:

[root@server ~]# openssl req -utf8 -new -key /etc/nginx/wy.key -x509 -days 365 -out /etc/nginx/wy.crt
Enter pass phrase for /etc/nginx/wy.key:                      #对应的私钥的验证密码“为之前创建私钥时的密码”
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:86        #国家的编号,中国为86
State or Province Name (full name) [Some-State]:shan'xi      #所在的省份
Locality Name (eg, city) []:xi'an                            #所在省份的城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:bewbew    #公司名
Organizational Unit Name (eg, section) []:rhce               #部门名字
Common Name (e.g. server FQDN or YOUR name) []:server        #你的主机名
Email Address []:66666@qq.co                                 #你的邮箱

然后即可,现在私钥,证书都有了

但nginx有个特殊项:要将私钥的密钥给去掉

cd到etc里的nginx,复制一份密钥,

然后即可

4、进行设置

输入vim /etc/nginx/nginx.conf   找到server模块,将下面被注释掉的https给修改了

可以将ipv6那行删除掉

# Settings for a TLS enabled server.
#server {listen       443 ssl http2;        #监听端口server_name  10.211.55.10;         #设成ip,不设置也可以  root         /www/wy;              #网页所在的位置ssl_certificate "/etc/nginx/wy.crt";    #证书所在的位置ssl_certificate_key "/etc/nginx/wy.key";    #私钥所在的位置# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}}

最重要的就是有注释的那几行,其他的不用进行修改,也可以将其删除,检查没问题后将其保存退出即可,退出后检查一下nginx是否有问题“nginx -t”没问题后重启nginx即可

最后在浏览器里输全网址https://xxxx

由于是我自己做的证书,不具备公信力,就会显示警告若要进入进行访问就可以点击“显示详细信息”或者“高级”里面

为了使访问更加方便,即将http自动转换成https,照样打开nginx的配置文件,将http进行配置

配置好ip地址后,删除文件所在位置,输入“return 301 https://10.211.55.10”意思是该网址已永久更换至https://10.211.55.10,最后进行重启nginx

相关文章:

Nginx part3 创建一个https的网站

目录 HTTPS 公钥和密钥 加密解密方式: https搭建步骤 强调一下 1、准备环境 2、配置文件 3、制作证书 4、进行设置 HTTPS 啥是https,根据百度:HTTPS (全称:Hypertext Transfer Protocol Secure)&a…...

事件高级。

一、注册事件(绑定事件) 就是给元素添加事件 注册事件有两种方式:传统方式和方法监听注册方式 1 传统注册方式 方法监听注册事件 2、 addEventListener 事件监听方式 里面的事件类型是字符串,必定加引号,而且不带o…...

Vue从入门到实战Day04

一、组件的三大组成部分(结构/样式/逻辑) 1. scoped样式冲突 默认情况:写在组件中的样式会全局生效 -> 因此很容易造成多个组件之间的样式冲突问题。 1. 全局样式:默认组件中的样式会作用到全局 2. 局部样式:可以…...

Linux学习笔记:信号

信号 在Linux中什么是信号信号的产生方式硬件产生的信号软件产生的信号异常产生的信号 进程对信号的处理信号的保存信号方法更改函数signal信号处理的更改恢复默认信号忽略 信号的管理信号集 sigset_t对信号集的操作 信号的捕捉过程 在Linux中什么是信号 在 Linux 系统中&…...

C#中的隐式类型转换和显式类型转换

在C#中,类型转换分为隐式类型转换(Implicit Type Conversion)和显式类型转换(Explicit Type Conversion),也称为隐式转换和强制转换。 隐式类型转换(Implicit Type Conversion) 隐…...

linux上如何排查JVM内存过高?

在Linux上排查JVM内存过高的问题,可以采用以下几种方法: 1. **使用top命令查看进程**:通过top命令可以观察到系统中资源占用情况,包括CPU和内存。当收到内存过高的报警时,可以使用top命令来查看是哪个进程的内存使用率…...

第四届上海理工大学程序设计全国挑战赛 J.上学 题解 DFS 容斥

上学 题目描述 usst 小学里有 n 名学生,他们分别居住在 n 个地点,第 i 名学生居住在第 i 个地点,这些地点由 n−1 条双向道路连接,保证任意两个地点之间可以通过若干条双向道路抵达。学校则位于另外的第 0 个地点,第…...

word-排版文本基本格式

1、文本的基本格式:字体格式、段落格式 2、段落:word排版的基本控制单位 3、每敲一次回车,为一个段落标记,注意区分换行符和段落标记,换行符为指向下的箭头,段落标记为带拐弯的箭头,换行符&…...

目标检测YOLO实战应用案例100讲-无监督领域自适应目标检测方法研究与应用(五)

目录 多源无监督领域自适应目标检测方法 4.1研究现状及问题形成 4.2相关工作详述...

通过python实现Google的精准搜索

问题背景: 我想通过Google或者其他网站通过精准搜索确认该产品是否存在,但是即使该产品不存在Google也会返回一些相关的url链接,现在想通过python实现搜索结果的精准匹配以确认该产品是否为正确的名称【可以通过google搜索到,如果…...

Nios-II编程入门实验

文章目录 一 Verilog实现流水灯二 Nios实现流水灯2.1 创建项目2.2 SOPC添加模块2.3 SOPC输入输出连接2.4 Generate2.5 软件部分2.6 运行结果 三 Verilog实现串口3.1 代码3.2 引脚3.3 效果 四 Nios2实现串口4.1 sopc硬件设计4.2 top文件4.3 软件代码4.4 实现效果 五 参考资料六 …...

从0开始学python(七)

目录 前言 1 break、continue和pass函数 1.1 break 1.2 continue 1.3 pass 2、序列的索引及切片操作 2.1字符串的索引和切片 2.1.1 字符串索引 2.1.2 字符串切片 总结 前言 上一篇文章我们介绍了python中的循环结构,包括for和while的使用。本章接着往下讲。…...

【二叉树算法题记录】404. 左叶子之和

题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 题目分析 其实这题无论是迭代法还是递归法,最重要的是要明确判断左叶子的条件:当前节点有左孩子,且这个左孩子没有它的左孩子和右孩子。 迭代法 感觉只要二叉树相关…...

面试集中营—Spring篇

Spring 框架的好处 1、轻量:spring是轻量的,基本的版本大约2MB; 2、IOC:控制反转,Spring的IOC机制使得对象之间的依赖不再需要我们自己来控制了,而是由容易来控制,一个字:爽&#xf…...

Lia 原理

训练阶段 论文流程: 具体实现: 通过latent space传递运动信息,实现分两部分。 1)image space->latent space 将源图像映射到隐空间编码。X_s (source image )映射到编码Z_sr,通过W_rd方向上的变化,得到新的编码Z…...

文本批量操作技巧:内容查找不再繁琐,自动化批量移动至指定文件夹

在文本处理和信息管理的日常工作中,我们经常需要处理大量的文件和数据。面对这些海量的信息,如何快速而准确地查找特定的内容,并将它们批量移动至指定的文件夹,成为了一项关键的技能。本文将介绍办公提效工具一些实用的文本批量操…...

[数据结构]动画详解单链表

💖💖💖欢迎来到我的博客,我是anmory💖💖💖 又和大家见面了 欢迎来到动画详解数据结构系列 用通俗易懂的动画的动画使数据结构可视化 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低…...

图片批量管理迈入智能新时代:一键输入关键词,自动生成并保存惊艳图片,轻松开启创意之旅!

在数字化时代,图片已成为我们表达创意、记录生活、传递信息的重要工具。然而,随着图片数量的不断增加,如何高效、便捷地管理这些图片,却成为了一个令人头疼的问题。 第一步,进入首助编辑高手主页面,在上方…...

【硬件模块】ESP-01SWiFi模块基于AT指令详解(WiFi,TCP/IP,MQTT)

ESP-01S ESP-01S是由安信可科技开发的一款Wi-Fi模块。其核心处理器是ESP8266,该处理器在较小尺寸的封装中集成了业界领先的Tensilica L106超低功耗32位微型MCU,带有16位精简模式,主频支持80MHz和160MHz,并集成了Wi-Fi MAC/BB/RF/P…...

数据结构之单单单——链表

目录 一.链表 1)链表的概念 2)链表的结构 二.单链表的实现 三.链表的分类 1)单向或者双向 2)带头或不带头 3)循环或非循环 一.链表 1)链表的概念 链表(Linked List)是一种…...

【会议征稿通知 | E3S出版 | EI 、Scopus稳定检索】第十二届能源材料与环境工程国际学术会议(ICEMEE 2026)

第十二届能源材料与环境工程国际学术会议(ICEMEE 2026) 2026 12th International Conference on Energy Materials and Environment Engineering 2026年6月12-14日 | 线上会议 大会官网:www.icemee.net 截稿时间:见官网&#x…...

如何用四探针精确测量半导体电阻率

在半导体行业中,准确测量晶圆电阻率是材料研发和制程质量控制的关键环节。随着工艺节点不断缩小,器件对电性一致性的要求日益严格,仅靠经验无法满足现代制造的需求。因此工程师们大量采用四探针方法对电阻率进行高精度测量。相比传统测量方式…...

开发雨天居家室内活动推荐程序,根据人数年龄自动生成雨天居家休闲创意活动。

一个完全去营销化、偏工程与创业实验视角的 Python 示例项目,定位为课程级 MVP 原型,不绑定任何平台、不推荐商品、不引导消费。雨天居家室内活动推荐程序——基于人数与年龄的规则推荐系统实验一、实际应用场景描述在下雨天气,家庭或室友常面…...

使用Taotoken后如何通过用量看板清晰掌握各模型API消耗情况

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后如何通过用量看板清晰掌握各模型API消耗情况 当你将多个大模型API的调用统一接入到Taotoken平台后,一个…...

AI视频工业化生产新范式(Sora 2与DaVinci深度耦合技术解密)

更多请点击: https://kaifayun.com 第一章:AI视频工业化生产新范式(Sora 2与DaVinci深度耦合技术解密) Sora 2不再仅是生成式模型的单点突破,而是作为视频工业流水线的智能中枢,与Blackmagic Design DaVi…...

Spring Cloud Sleuth 响应式编程支持:WebFlux 与 Reactor 追踪实践

Spring Cloud Sleuth 响应式编程支持:WebFlux 与 Reactor 追踪实践 【免费下载链接】spring-cloud-sleuth Distributed tracing for spring cloud 项目地址: https://gitcode.com/gh_mirrors/sp/spring-cloud-sleuth Spring Cloud Sleuth 是 Spring Cloud 生…...

别再从头训练了!用SAM-Adapter‘轻量化’微调,让你的分割模型快速适配新任务

SAM-Adapter:轻量化微调技术让图像分割模型快速适配新任务 在计算机视觉领域,Segment Anything Model(SAM)的出现无疑掀起了一场分割技术的革命。这个由Meta推出的基础模型,以其惊人的零样本泛化能力震撼了整个行业。然…...

Python初学者项目练习28--移除列表中的多个元素

一、练习题目 定义一个函数,该函数用于从第一个列表list1中移除所有存在于第二个列表list2中的元素 二、代码 1.初始版本 代码如下: def remove_number(list1, list2):for i in range(list1):for j in range(list2):if i j:list1.remove(j)return list1…...

别再死记硬背了!用这5个Shapely实战案例,轻松搞定GIS数据处理

用5个实战案例解锁Shapely:告别枯燥API,玩转GIS数据处理 第一次接触Shapely时,我也曾被那些晦涩的几何术语和冰冷的API文档劝退。直到接手一个城市绿化分析项目,被迫在三天内完成公园边界处理,才真正体会到这个库的魔力…...

告别复杂配置,使用Taotoken CLI一键生成多工具环境配置文件

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 告别复杂配置,使用Taotoken CLI一键生成多工具环境配置文件 在接入多个大模型工具时,开发者常常需要为每个…...