TLS SSL

news2024/11/17 1:30:36

6718f5667fdef846c752fba43d68003.jpg

HTTPS

HTTPS,全称为 Hypertext Transfer Protocol Secure,是一种通过加密通道传输数据的安全协议。它是 HTTP 协议的安全版本,用于在 Web 浏览器和 Web 服务器之间进行安全的数据传输。HTTPS 在传输过程中使用了 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议来加密数据,确保敏感信息在传输过程中不会被窃取或篡改。

http 缺点

通信使用明文(不加密),内容可能会被盗用

不验证通信方的身份,因此有可能遭遇伪装

无法证明报文的完整性,所以有可能已遭篡改

https

信息加密

完整性校验

身份验证

HTTPS = http + TLS/SSL

TLS SSL

TLS(Transport Layer Security)和 SSL(Secure Sockets Layer)是用于保护网络通信的安全协议。它们都提供了加密和认证机制,用于确保数据传输的机密性和完整性。

SSL 是最早的安全协议,而 TLS 是在 SSL 的基础上发展起来的。目前广泛使用的版本是 TLS 1.2 和 TLS 1.3。TLS 1.3 是最新的协议版本,在安全性、性能和功能方面有一些改进。

TLS 和 SSL 主要用于以下两个方面:

  1. 加密通信:TLS/SSL 使用加密算法来对数据进行加密,防止第三方截获和窃听通信内容。它可以确保数据在传输过程中的隐私性。
  2. 身份认证:TLS/SSL 还提供了身份验证机制,用于确认通信双方的身份,并确保数据只发送到正确的接收方。这可以防止恶意用户冒充其他用户或服务器。

SSL 是最早的用来做https
TLS 是SSL升级版 提高了安全性 并解决了SSL存在的一些安全性问题

SSl/TLS 工作原理类似的

HTTP
TLS/SSL 安全层
TCP

加密

  1. 对称加密

常见的算法有 AES DES 加密

举例 麒麟->星月发消息 但是他们的消息不想被别人知道,采用了对称加密,于是他们两个协商了一段密钥,今生永相随

麒麟:AES算法 + 密钥(今生永相随)+明文(吃面) = XMZSXMZS==

星月:使用AES + 密钥(今生永相随)+密文( XMZSXMZS==) = 吃面

  1. 非对称加密

常见算法有RSA DSA 加密

举例 麒麟->星月发消息,这次使用的是非对称加密,生成了公钥和私钥,公钥可以对外公开,私钥必须只能麒麟知道不能泄露。

星月:RSA + 公钥 + 明文(吃面) = XMZS==

麒麟:RSA + 私钥 + 密文(XMZS==) = 吃面

openSSL 生成私钥

openSSL 安装

Mac电脑自带了

windows
https://www.openssl.org/source/

在 SSL/TLS 加密通信中,一般需要使用三个文件来完成证书相关操作,即:

  1. 私钥文件(例如 “private-key.pem”),用于对加密数据进行解密操作。

  2. 证书签名请求文件(例如 “certificate.csr”),用于向 CA 申请 SSL/TLS 证书签名。

  3. SSL/TLS 证书文件(例如 “certificate.pem”),用于对客户端发送的请求进行验证,以确保通信安全可靠。

私钥文件用于对数据进行解密操作,保证了通信的机密性;证书签名请求文件包含了请求者的身份信息和公钥等信息,需要被发送给 CA 进行签名,从而获取有效的 SSL/TLS 证书;SSL/TLS 证书文件则包含了签名后的证书信息,被用于客户端和服务器之间的身份验证,以确保通信的安全性和可靠性。

通过使用这三个文件进行密钥交换和身份验证,SSL/TLS 可以实现加密通信以及抵御可能的中间人攻击,提高了通信的安全性和保密性。

openssl genpkey -algorithm RSA -out private-key.pem -aes256

openssl: OpenSSL 命令行工具的名称。

genpkey: 生成私钥的命令。

-algorithm RSA: 指定生成 RSA 私钥。

-out private-key.pem: 将生成的私钥保存为 private-key.pem 文件。

-aes256: 为私钥添加 AES 256 位加密,以保护私钥文件不被未经授权的人访问。

Enter PEM pass phrase qwe123 密码短语生成pem文件的时候需要

生成pem 证书文件

openssl req -new -key private-key.pem -out certificate.csr

  1. “req”: 表示使用 X.509 证书请求管理器 (Certificate Request Management) 功能模块。
  2. “-new”: 表示生成新的证书签名请求。
  3. “-key private-key.pem”: 表示使用指定的私钥文件 “private-key.pem” 来加密证书签名请求中的密钥对。
  4. “-out certificate.csr”: 表示输出生成的证书签名请求到文件 “certificate.csr” 中。该文件中包含了申请者提供的一些证书请求信息,例如公钥、授权主体的身份信息等。

Country Name (2 letter code) []:CN 国家

State or Province Name (full name) []:BJ 省份

Locality Name (eg, city) []:BJ 城市

Organization Name (eg, company)ZMY 组织或者是个人

Organizational Unit Name (eg, section) []:XMKJ 机构名称

Common Name (eg, fully qualified host name) []:localhost 域名

Email Address []: 邮箱地址

Please enter the following ‘extra’ attributes

to be sent with your certificate request

A challenge password []: 密码加盐 XMZSXMZSXMZS

openssl x509 -req -in certificate.csr -signkey private-key.pem -out certificate.pem

“x509”: 表示使用 X.509 证书管理器功能模块。

“-req”: 表示从输入文件(这里为 “certificate.csr”)中读取证书签名请求数据。

“-in certificate.csr”: 指定要读取的证书签名请求文件名。

“-signkey private-key.pem”: 指定使用指定的私钥文件 “private-key.pem” 来进行签名操作。一般情况下,签名证书的私钥应该是和之前生成 CSR 的私钥对应的。

“-out certificate.pem”: 表示将签名后的证书输出到文件 “certificate.pem” 中。该文件中包含了签名后的证书信息,包括签名算法、有效期、公钥、授权主体的身份信息等。

Enter pass phrase for private-key.pem: 密码短语

nodejs接口测试https

引入生成好的两个文件 certificate.pem private-key.pem

import https from 'node:https'
import fs from 'node:fs'
https.createServer({
    key: fs.readFileSync('private-key.pem'),
    cert: fs.readFileSync('certificate.pem'),
    //密码短语
    passphrase: 'qwe123'
}, (req, res) => {
    res.writeHead(200)
    res.end('success')
}).listen(443,()=>{
    console.log('server is running')
})

nginx配置https

终极大坑 如果在windows使用nginx配置https 私钥不能设置密码

  1. openssl genrsa -out nginx.key 2048 (生成私钥)
  2. openssl req -new -key nginx.key -out nginx.csr(生成签名文件)
  3. openssl x509 -req -in nginx.csr -signkey nginx.key -out nginx.crt(生成证书)

在nginx配置文件

    server {
       listen       443 ssl;
       server_name  localhost;

       ssl_certificate      nginx.crt;
       ssl_certificate_key  nginx.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

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

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/676678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Compose开发一款桌面端APK逆向工具

目录 1.前言2.小感慨3.逆向工具简介3.1.ApkTool3.2.Jadx3.3.其他工具3.3.1.Dex文件反编译为Jar文件dex2jar 3.3.2.Jar文件反编译为Java文件JavaDecompilerProcyonFernflowerCFR 4.桌面端逆向APK应用的开发4.1.文件拖拽4.2.构造工程目录4.3.文件标签页4.4.关键字高亮4.5.本地图片…

大模型没有壁垒吗?开源模型和chatgpt已经没有差距了吗?

近期有很多工作比如Alpaca、Vicuna、Koala等论文宣称通过收集到的大量chatgpt output,在基于开源大模型如LLaMA上进行微调后的模型就接近甚至超过chatgpt效果。有些看热闹不嫌事大的媒体渲染诸如“复制chatgpt,仅需100美元“,”开源大模型超过…

行为型模式--观察者模式

目录 概述 结构 案例实现 优缺点 优点: 缺点: 使用场景 概述 又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者 对象同时监听某一个主题对象。这个主题对象在…

vscode c++ 环境配置(终极版)

1. window系统 c 环境配置 1.1 配置MinGw编译器 (1)下载mingw64 mingw64 的按照包,我已经放在百度网盘上了,搭建可自行下载: 链接: https://pan.baidu.com/s/1NoPGAYFuP5ysXTf8wtvbEA?pwdwd6w 提取码: wd6w (2&…

目标检测基础

MTCNN 人脸检测 MTCNN,Multi-task convolutional neural network(多任务卷积神经网络),将人脸区域检测与人脸关键点检测放在了一起,它的主题框架类似于cascade。总体可分为P-Net、R-Net、和O-Net三层网络结构。这三个…

IOS工程使用OpenCV库完整步聚

1.打开Xcode15并点击Create New Project 2.引用编译好的opencv2.framework框架 选择添加其它库 选择Add Files ... 选择OpenCV源码编译生成输入的IOS平台的opencv2.framework库 opencv库要放在工程目录下,不然会找不到 成功添加opencv库的引用,现在可在工程中使用openc…

《网络安全0-100》多级安全

1.多级安全 建立安全模型的方法: 信息流模型 访问控制模型 1.1 BLP模型 1.1模型构建 不能下写、不能上读,保持数据的机密性。 例子:军事、商务、外交的机密性强场景。下级可以给上级进行汇报,但下级不能读取上级的作战计划…

【C++学习】C++入门 | 缺省参数 | 函数重载 | 探究C++为什么能够支持函数重载

写在前面: 上一篇文章我介绍了C该怎么学,什么是命名空间,以及C的输入输出, 这里是传送门:http://t.csdn.cn/Oi6V8 这篇文章我们继续来学习C的基础知识。 目录 写在前面: 1. 缺省参数 2. 函数重载 3…

浅谈【AI、算力赋能】“大算力”时代的到来

🔻一、【💣 话题引入:“AI算力最强龙头”,你怎么看?】 🙈 AI人工智能是否可以取代人类?    🙈 应不应该限制人工智能的发展?      🙈 AI研究及龙头行业迎…

011-从零搭建微服务-接口文档(一)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):https://gitee.com/csps/mingyue 源码地址(前端):https://gitee.com/csps…

【P2】VMware 下 docker 快速搭建漏洞靶场 DVWA

文章目录 一、docker 快速搭建漏洞靶场指南二、执行步骤三、为 kali 配置 docker 加速器四、访问 dockerhub 的 dvwa 镜像五、漏洞利用初探,修改 requests 请求参数远程执行命令六、vulhub 搭建漏洞复现 包括什么是 docker、docker 和虚拟机的的区别、docker 搭建 D…

阿里云服务器的虚拟化技术和资源隔离如何?是否支持私有云部署?

阿里云服务器的虚拟化技术和资源隔离如何?是否支持私有云部署?   一、阿里云服务器的虚拟化技术   阿里云服务器采用了业界领先的虚拟化技术,为用户提供了强大而灵活的计算性能。这主要体现在以下几个方面:   1.1 弹性伸缩 …

强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战

【强化学习原理项目专栏】必看系列:单智能体、多智能体算法原理项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现 专栏详细介绍:【强化学习原理项目专栏】必看系列:单智能体、多智能体算法原理项目实战、相关技巧…

【CMake 入门与进阶(13)】 CMake如何设置交叉编译(附代码)

cmake如果不设置交叉编译,默认情况下,会使用主机系统(运行 cmake 命令的操作系统)的编译器来编译我们的工程,那么得到的可执行文件或库文件只能在 Ubuntu 系统运行,如果我们需要使得编译得到的可执行文件或…

javaWeb医药管理系统

一、引言 二、项目截图 2.1 首页设计 2.2一级页面设计 2.2-1注册界面 2.2-2管理员登录界面 2.3二级页面设计 药品信息模块 药品销售 用户信息 三、项目基本要求 1.主要功能 医药管理系统的主要功能为:、药品更新、药品查询 药品更新功能分为三部分&…

前端Vue自定义支付密码输入键盘Keyboard和支付设置输入框Input

前端Vue自定义支付密码输入键盘Keyboard和支付设置输入框Input&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13166 效果图如下&#xff1a; # cc-defineKeyboard #### 使用方法 使用方法 <!-- ref:唯一ref pas…

VMware vCenter Server 7.0 Update 3m 发布下载(重要安全更新)

VMware vCenter Server 7.0 Update 3m 发布下载&#xff08;重要安全更新&#xff09; 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vcenter-7-u3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org VMware vCente…

canvas详解07-裁剪

裁切路径 裁切路径和普通的 canvas 图形差不多,不同的是它的作用是遮罩,用来隐藏不需要的部分。如右图所示。红边五角星就是裁切路径,所有在路径以外的部分都不会在 canvas 上绘制出来。 如果和上面介绍的 globalCompositeOperation 属性作一比较,它可以实现与 source-in …

基于cycle of curves的Nova证明系统(2)

主要见斯坦福大学Wilson Nguyen、Dan Boneh和微软研究中心Srinath Setty 2023年论文《Revisiting the Nova Proof System on a Cycle of Curves》。 前序博客见&#xff1a; 基于cycle of curves的Nova证明系统&#xff08;1&#xff09; 5. IVC Proof进一步压缩 本文提出了…

【Rust】1、实战:语法和数据结构、生命周期-所有权-借用、自制 CPU、内存、文件

文章目录 零、Rust 好用的资源一、概述1.1 安全性1.1.1 垂悬指针1.1.2 数据竞争1.1.3 迭代器失效 1.2 性能1.3 vscode 設置 二、基础语法2.1 循环2.2 引用2.3 生命周期2.4 泛型2.5 实战grep项目2.6 数组2.6.1 数组和切片2.6.2 动态数组2.6.3 初始化 2.7 包含第三方库2.8 命令行…