首页 > 其他分享 >HTTPS+TLS/SSL

HTTPS+TLS/SSL

时间:2024-06-18 11:43:13浏览次数:10  
标签:TLS 私钥 CA 摘要 信息 秘钥 SSL HTTPS 加密

名词解释

  • TLS: Transport Layer Security
  • SSL: Secure Sockets Layer

理论基础

信息摘要算法

  • 根据一段信息计算出一串数字,但是由这串数字没办法还原出原来的信息
  • 等于是这串数字由这段信息产生,可以表示这段信息,称为这段信息的摘要
  • 主要有以下应用:
    • 传输文件时验证文件有无损坏:传输时不仅传文件,还传送文件的摘要,传输完了之后根据文件重新计算摘要,并和传过来的摘要对比,如果不一样说明文件损坏。
    • 降低数字签名的性能开销:数字签名时如果直接对原信息签名,开销太大。可以先计算出原信息的摘要,再对摘要进行签名,也可以达到签名的目的。
  • 常用的算法有:
    • MD5: Message Diagest
    • SHA256: Secure Hash Algorithm

对称加密和非对称加密

  • 对称加密
    • 一个秘钥既能加密又能解密
    • 特点是计算开销小,因此真正的通信一般用的都是先采用一些办法发送秘钥,再用对称加密进行通信
  • 非对称加密
    • 有两个秘钥,称为一个秘钥对,其中一个加密的密文只有对应的另一个秘钥能解密
    • 特点是计算开销大,因此一般不用来对通信进行加解密,而用在发送秘钥、认证等方面
    • 秘钥对一般分为公钥和私钥。公钥公开,私钥由自己保留不可泄露。因此私钥能用来证明自己的身份,并由此延伸出以下两个方面的应用:
      • 公钥加密的信息能确保只有私钥拥有者才能解密,因此能确保信息准确发送到接收方。
      • 如果信息能够用公钥解密,则说明这个信息肯定是私钥拥有者加密的,就证明这个信息是私钥拥有者承认的。这就叫数字签名。
    • 最常见的 RSA 算法,RSA 是三个人名字的首字母

数字证书

  • 为了解决通信双方的身份认证问题。比如你登录百度,你怎么知道你登录的网站就是百度?域名和 IP 都有可能被中间人代理。
  • 方法如下:
    • 由权威的 CA 机构(Certificate Authority 证书权威)发布机构自己的公钥,这个公钥会内置在所有计算机的系统内部,很难篡改
    • 网站去 CA 机构申请数字证书,并向 CA 机构提供自己的相关信息(主要是网站自己的公钥)。 CA 机构对网站进行认证之后,先对网站信息做摘要,然后用 CA 机构自己的私钥对摘要加密。这个过程就叫数字签名,数字签名 + 网站信息 = 数字证书
    • 浏览器上网时,对方网站,用系统内置的 CA 机构发布的公钥

标签:TLS,私钥,CA,摘要,信息,秘钥,SSL,HTTPS,加密
From: https://www.cnblogs.com/god-sin/p/18254034

相关文章

  • ssl配置
    20240611配置ssl;(使用acme)  https://github.com/acmesh-official/acme.sh安装、配置、执行、生成证书、copy安装证书、 curlhttps://get.acme.sh|[email protected] exportAli_Key="LTAI5tCTUecKJm6t5xyvNhBE" exportAli_Secret="xiDOIYcEEZNJeZIn8hQnIph4z......
  • 【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证
    问题描述访问AppService的高级工具KUDU站点的URL,遇见无法访问,在通过azwebappdeploy发布时候,也遇见SSL错误(SSL:CERITIFICATE_VERIFY_FAILEDcertificateverifyfailed:unabletogetlocalissuercertificate)问题解答为AZ指令配置,跳过SSL认证,来实现AZWEBAPPDEPLOY......
  • 快速解决:使用Mindspore框架时报错!!libgomp-6e1a1d1b.so.1.0.0: cannot allocate memory
    前言:最近在用ms跑大模型,需要做好多步骤,遇到报错跟大家一起分析一下吧刚开始转换权重就遇到了下述报错:ImportError:/root/anaconda3/envs/MS/lib/python3.9/site-packages/torch/lib/../../torch.libs/libgomp-6e1a1d1b.so.1.0.0:cannotallocatememoryinstaticTLSblo......
  • SHOW PROCESSLIST 最多能显示多长的 SQL?
    在MySQL中,如果我们想查看实例当前正在执行的SQL,常用的命令是SHOWPROCESSLIST。但如果SQL过长的话,就会被截断。这时,我们一般会用SHOWFULLPROCESSLIST来查看完整的SQL。最近碰到一个case,发现无论是使用 SHOWPROCESSLIST、SHOWFULLPROCESSLIST,还是performance_schem......
  • [转]使用acme.sh自动申请、续期、部署免费的SSL证书
    原文地址:使用acme.sh自动申请、续期、部署免费的SSL证书-RidingWind-博客园参考文档:https://github.com/acmesh-official/acme.sh一个使用纯shell操作的免费SSL证书申请部署工具。免费的SSL证书由以下CA机构提供:ZeroSSL.comCA(default)Letsencrypt.orgCABuyPass.comCASSL......
  • 如何完美解决 IDE升级后启动报错 Internal error. Please refer to https://jb.gg/ide
    如何完美解决IDE升级后启动报错Internalerror.Pleaserefertohttps://jb.gg/ide/critical-startup-errors博主猫头虎的技术世界......
  • 如何快速批量申请SSL证书
    假如您手头拥有1千个域名,并且打算为每一个域名搭建网站,那么在当前的网络环境下,您必须确保这些网站通过https的方式提供服务。这意味着,您将为每一个域名申请SSL证书,以确保网站数据传输的安全性和可信度。那么,您该如何着手申请这些SSL证书呢?一、一般方案1、国内云平台免费SSL额度......
  • Linux下Nginx安装并开启SSL
    Linux下Nginx安装并开启SSL一.下载nginxNginxdownload下载后上传至服务器。PS:博主使用的Nginx版本为:nginx-1.23.4.tar.gz二.安装Nginx所需要的环境1.安装gcc-c++yuminstallgcc-c++yuminstall-yopensslopenssl-devel2.安装pcre包yuminstall-ypcrepcre......
  • http和https的区别是什么
    HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是互联网上用于传输数据的两种主要协议。它们的主要区别在于数据传输的安全性。1.安全性:-HTTP:不加密,数据以明文形式传输,容易被截获和篡改,因此存在安全风险。-HTTPS:在HTTP的基础上增加了SSL/TLS协议,对数据进行加密,确保数......
  • 核心(Hutool-core)工具类(类加载工具-ClassLoaderUtil)
    介绍提供ClassLoader相关的工具类,例如类加载(Class.forName包装)等方法获取ClassLoadergetContextClassLoader获取当前线程的ClassLoader,本质上调用Thread.currentThread().getContextClassLoader()getClassLoader按照以下顺序规则查找获取ClassLoader:获取当前线程的Context......