http 通信协议的基本原理

http 协议在远程通信场景中的应用还是挺广泛的,包括现在主流的微服务架构的通信都是基于 http 协议。由于经常使用的关系,所以大家对http 协议的理解还是比较深刻,我这里就直接帮大家梳理一下 http 协议的基本原理。

一次 HTTP 请求的通信流程

我们先来思考一个问题,我们在浏览器上输入一个网址后,浏览器是如何展示目标网址的内容的?内容是从哪里来的呢?来通过图形把这个过程画一下
在这里插入图片描述
DNS: (Domain Name System)服务是和 HTTP 协议一样位于应用层的协议。它提供域名到 IP 地址之间的解析服务, 用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 IP 地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯
但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。为了解决上述的问题, DNS 服务应运而生。DNS 协议提供通过域名查找 IP 地址,或逆向从IP 地址反查域名的服务

HTTP 通信协议的组成

刚刚我们已经得知了 HTTP 协议的工作过程,同时我们也应该知道 HTTP 协议是基于应用层的协议,并且在传输层使用的 TCP 的可靠性通信协议。既然是协议,那么就应该符合协议的定义:协议是两个需要通过网络通信的程序达成的一种约定,它规定了报文的交换方式和包含的意义,所以,接下来我们来深入去剖析 HTTP 协议的原理和组成

请求 URI 定位资源

我们在浏览器中输入一个地址,浏览器是如何根据地址去找到服务器对应的资源并做返回的?以及这个地址包含了哪些有价值的信息呢?
这就需要我们了解 URL (Uniform Resource Locator),统一资源定位符 ,用于描述一个网络上的资源,具体格式是
URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联网上所处的位置)。可 见 URL 是 URI 的子集。
http://www.gupaoedu.com:80/java/index.html?name=mic#head

  • schema://host[:port#]/path/…/?[url-params]#[ query-string]
  • scheme 指定应用层使用的协议(例如: http, https, ftp)
  • host HTTP 服务器的 IP 地址或者域名
  • port# HTTP 服务器的默认端口是 80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/
  • path 访问资源的路径
  • query-string 查询字符串
  • 片段标识符(使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个位置))

通过这个 url 地址,我们就可以读到,当前用户要使用 http 协议访问指定服务器上对应进程
中的资源,并且携带了请求参数。

MIME Type

服务器根据用户请求的资源找到对应的文件以后,会返回一个资源给到客户端浏览器,浏览器会对这个资源解析并且渲染。但是服务器上的资源类型有很多,比如图片类型、视频类型、Js、 Css、文本等。浏览器如何识别当前类型做不同的渲染呢?

  • MIME Type: 是描述消息内容类型的因特网标准,常见的几种类型
  • 文本文件: text/html,text/plain,text/css,application/xhtml+xml,application/xml
  • 图片文件: image/jpeg,image/gif,image/png.
  • 视频文件: video/mpeg,video/quicktime

我们可以通过两种方式来设置文件的渲染类型,第一种是 Accept,第二种是 Content-Type

  • Accept: 表示客户端希望接受的数据类型, 即告诉服务器我需要什么媒体类型的数据,此时
    服务器应该根据 Accept 请求头生产指定媒体类型的数据
  • Content-Type: 表 示 发 送 端 发 送 的 实 体 数 据 类 型 , 比 如 我 们 应 该 写 过 类 似 的 :resposne.setContentType(“application/json;charset=utf-8”)的代码,表示服务端返回的数据格式是 json。

如果 Accept 和 Content-Type 不一致,假如说 Accept 要接收的类型是 image/gif,但是服务
端返回的数据是 text/html,那么浏览器将会无法解析。

如果用户访问一个不存在的地址呢?

如果用户访问的地址没问题,或者服务器也能正常解析及处理当前用户的请求,那就能够返回正确的信息给到客户端。但是如果用户访问的地址有问题,或者服务端在解析用户请求以及处理请求逻辑时出现问题,怎么办呢?浏览器应该怎么告诉用户当前是处理失败的呢?因此这里就涉及到一个状态码的概念状态码的职责是当客户端向服务端发送请求时,描述服务端返回的请求处理结果,通过状态码,浏览器可以知道服务器是正常处理请求还是出现了错误
在这里插入图片描述
常见的错误码:

  • 200:一切正常
  • 301:永久重定向
  • 404:请求资源不存在
  • 500:服务端内部错误

有了状态码,在用户访问某个网站出现非正常状态时,浏览器就可以很友好的提示用户

告诉服务器端当前请求的意图

有了 url, mimetype、状态码, 能够基本满足用户的需求,但是,很多时候一个网站不单纯只是不断从服务端获取资源并做渲染,可能还需要做一些数据的提交、删除等功能。所以浏览器定义了 8 种方法来表示对于不同请求的操作方式,当然最常用的还是 Get 和 Post,我觉得,要不是 Get 方法不支持大数据的传输,估计很多人 Post 都不会去使用。

  • GET:一般是用于客户端发送一个 URI 地址去获取服务端的资源(一般用于查询操作), Get不支持的传输数据有限制,具体限制由浏览器决定
  • POST:一般用户客户端传输一个实体给到服务端,让服务端去保存(一般用于创建操作)
  • PUT:向服务器发送数据,一般用于更新数据的操作
  • DELETE:客户端发起一个 Delete 请求要求服务端把某个数据删除(一般用于删除操作)
  • HEAD:获得报文首部、 OPTIONS:询问支持的方法、 TRACE:追踪路径、 CONNECT: 用隧道协议连接代理

在 REST 架构风格中,有严格规定对于不同的请求类型要设置合适的请求方法。也是避免出
现因为乱用导致混乱的问题。

  1. 随着服务化架构的普及, http 协议的使用频率越来越高
  2. 很多人在错误的使用 http 协议定义接口,比如各种各样的命名,什么 getUserInfoById,
    deleteById 之类的、有状态和无状态请求混用。
  3. 对于 http 协议本身提供的规则并没有很好的利用

所以,为了更好的解决这些问题,干脆就定义一套规则,这套规则并没有引入新的东西,无非就是对 http 协议本身的使用做了一些约束,比如说
4. REST 是面向资源,每一个 URI 代表一个资源
5. 强调无状态化, 服务器端不能存储来自某个客户的某个请求中的信息,并在该客户的其他
请求中使用
6. 强调 URL 暴露资源时,不要在 URI 中出现动词
7. 合理的利用 http 状态码、请求方法。

http 协议的完整组成

http 协议包含两个报文,一个是请求报文,一个是响应报文

请求报文

请求报文格式包含三个部分,(起始行、首部字段、主体)
在这里插入图片描述

响应报文

响应的报文格式也是一样,分为三部分
在这里插入图片描述

Http 协议中的扩展

如果传输的文件过大怎么办

服务器上返回的资源文件比较大,比如有些 js 文件大小可能就有几兆。文件过大就会影响传输的效率,同时也会带来带宽的消耗。怎么办呢?

  1. 常见的手段是,对文件进行压缩,减少文件大小。那压缩和解压缩的流程怎么实现呢?
    • 首先服务端需要能支持文件的压缩功能,其次浏览器能够针对被压缩的文件进行解压缩。浏览器可以指定 Accept-Encoding 来高速服务器我当前支持的编码类型
      Accept-Encoding:gzip,deflate
      那服务端会根据支持的编码类型,选择合适的类型进行压缩。常见的编码方式有: gzip/deflate
    • 分割传输
      在传输大容量数据时,通过把数据分割成多块,能够让浏览器逐步显示页面。这种把实体主体分块的功能称为分块传输编码(Chunked Transfer Coding)。
每次请求都要建立连接吗?

在最早的 http 协议中,每进行一次 http 通信,就需要做一次 tcp 的连接。而一次连接需要进行 3 次握手,这种通信方式会增加通信量的开销。
在这里插入图片描述
所以在 HTTP/1.1 中改用了持久连接,就是在一次连接建立之后,只要客户端或者服务端没有明确提出断开连接,那么这个 tcp 连接会一直保持连接状态
持久连接的一个最大的好处是:大大减少了连接的建立以及关闭时延。

  • HTTP1.1 中有一个 Transport 段。 会携带一个 Connection:Keep-Alive,表示希望将此条连接作为持久连接。

  • HTTP/1.1 持久连接在默认情况下是激活的,除非特别指明,否则 HTTP/1.1 假定所有的连接都是持久的,要在事务处理结束之后将连接关闭, HTTP/1.1 应用程序必须向报文中显示地添加一个 Connection: close 首部。

  • HTTP1.1 客户端加载在收到响应后,除非响应中包含了 Connection: close 首部,不然 HTTP/1.1连接就仍然维持在打开状态。但是,客户端和服务器仍然可以随时关闭空闲的连接。不发送Connection: close 并不意味这服务器承诺永远将连接保持在打开状态。

管道化连接: http/1.1 允许在持久连接上使用请求管道。 以前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。这样就能够做到同时并行发送多个请求,而不需要一个接一个地等待响应了。
在这里插入图片描述

Http 协议的特点

Http 无状态协议

HTTP 协议是无状态的,什么是无状态呢?就是说 HTTP 协议本身不会对请求和响应之间的通信状态做保存。
但是现在的应用都是有状态的,如果是无状态,那这些应用基本没人用,你想想,访问一个电商网站,先登录,然后去选购商品,当点击一个商品加入购物车以后又提示你登录。这种用户体验根本不会有人去使用。那我们是如何实现带状态的协议呢?

客户端支持的 cookie

Http 协议中引入了 cookie 技术,用来解决 http 协议无状态的问题。通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态; Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

服务端支持的 session

服务端是通过什么方式来保存状态的呢? 在基于 tomcat 这类的 jsp/servlet 容器中,会提供session 这样的机制来保存服务端的对象状态,服务器使用一种类似于散列表的结构来保存信息,当程序需要为某个客户端的请求创建一个 session 的时候,服务器首先检查这个客户端的请求是否包含了一个 session 标识- session id;

如果已包含一个 session id 则说明以前已经为客户端创建过 session,服务器就按照 session id 把这个 session 检索出来使用(如果检索不到,会新建一个);

如果客户端请求不包含 sessionid,则为此客户端创建一个 session 并且生成一个与此 session相关联的 session id, session id 的值是一个既不会重复,又不容易被找到规律的仿造字符串,这个 session id 将会返回给客户端保存
在这里插入图片描述

Tomcat 实现 session 的代码逻辑分析

我们以 HttpServletRequest#getSession() 作为切入点,对 Session 的创建过程进行分析我 们 的 应 用 程 序 拿 到 的 HttpServletRequest 是org.apache.catalina.connector.RequestFacade(除非某些 Filter 进行了特殊处理),它是
org.apache.catalina.connector.Request 的门面模式。首先,会判断 Request 对象中是否存在 Session,如果存在并且未失效则直接返回

如果不存在 Session,则尝试根据 requestedSessionId 查找 Session,如果存在 Session 的话则直接返回,如果不存在的话,则创建新的 Session,并且把 sessionId 添加到 Cookie 中,后续的请求便会携带该 Cookie,这样便可以根据 Cookie 中的 sessionId 找到原来创建的Session 了
在这里插入图片描述

Https 协议基本分析

由于 HTTP 协议在通信过程中,是基于明文通信,并且底层是基于 TCP/IP 协议进行通信,那么按照 TCP/IP 协议族的工作机制,通信内容在所有的通信线路上都有可能遭到拦截和窃取。窃取这个过程其实很简单,通过抓包工具 Wireshark 就可以截获请求和响应的内容。

https 安全传输协议

由于 HTTP 协议通信的不安全性,所以人们为了防止信息在传输过程中遭到泄漏或者篡改,就想出来对传输通道进行加密的方式 https。
https 是一种加密的超文本传输协议,它与 HTTP 在协议差异在于对数据传输的过程中, https对数据做了完全加密。由于 http 协议或者 https 协议都是处于 TCP 传输层之上,同时网络协议又是一个分层的结构,所以在 tcp 协议层之上增加了一层 SSL(Secure Socket Layer,安全层)或者 TLS(Transport Layer Security) 安全层传输协议组合使用用于构造加密通道;
Ssl 是 netscape 公司设计的(Secure sockets layer), 后来互联网标准化组织 ISOC 接替了NETScape 公司,发布了 SSL 的升级版 TLS。接着 TLS 的版本又进行了多次升级; 实际上我们现在的 HTTPS 都是用的 TLS 协议,但是由于 SSL 出现的时间比较早,并且依旧被现在浏览器所支持,因此 SSL 依然是 HTTPS 的代名词.
在这里插入图片描述

逆向推导 https 的设计过程

我们先不去探究 ssl 的实现原理,我们先从设计者的角度去思考如何去建立一个安全的传输通道

从第一个消息开始

客户端 A 向服务端 B 发送一条消息,这个消息可能会被拦截以及篡改,我们如何做到 A 发送给 B 的数据包,及时被拦截了,也没办法得知消息内容并且也不能查看呢?
在这里插入图片描述

利用对称加密

要做到消息不能被第三方查看以及篡改,那么第一想法就是对内容进行加密,同时,该消息还需要能被服务端进行解密。所以我们可以使用对称加密算法来实现,密钥 S 扮演着加密和解密的角色。在密钥 S 不公开的情况下,就可以保证安全性?
在这里插入图片描述

没那么简单

在互联网世界,通信不会这么简单,也许是这样。
在这里插入图片描述
会存在多个客户端和服务端产生连接,而这个客户端也许是一个潜伏者,如果他也有对称密钥 S,那相当于上面的方案是不可行的?如果服务端和每个客户端通信的时候使用不同的加密算法呢?
在这里插入图片描述
似乎能够完美解决问题,然后?密钥如何分配呢?也就是服务端怎么告诉客户端该使用那种对称加密算法呢? 解决办法似乎只能通过建立会话以后进行协商了?

协商过程又是不安全的

协商过程,意味着又是基于一个网络传输的情况下去动态分配密钥,可是这个协商过程又是不安全的,怎么破?

非对称加密出马

非对称加密算法的特点是:私钥加密后的密文,只要有公钥,都能解密,但是公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有人
在这里插入图片描述
这样就可以保证 A/B 向服务器端方向发送的消息是安全的。 似乎我们通过非对称加密算法解
决了密钥的协商的问题?但是

公钥怎么拿?

使用非对称加密算法, 那么如何让 A、 B 客户端安全地持有公钥?
那么我们逐步思考,有两种我们能想到的方案:

  1. 服务器端将公钥发送给每一个客户端
  2. 服务器端将公钥放到一个远程服务器,客户端可以请求到 (多了一次请求,还得解决公钥放置问题)

方案一似乎不可行,因为,传输过程又是不安全的?公钥可能会被调包
在这里插入图片描述

引入第三方机构

到上面这一步,最关键的问题是,客户端如何知道给我公钥的是黄蓉还是小龙女?只能找本人去证实?或者有一个第三者来帮你证实,并且第三者是绝对公正的。所以,引入一个可信任的第三者是一个好的方案
服务端把需要传递给客户端的公钥,通过第三方机构提供的私钥对公钥内容进行加密后,再传递给客户端? 通过第三方机构私钥对服务端公钥加密以后的内容,就是一个简陋版本的“数字证书”。这个帧数中包含【服务器公钥】
在这里插入图片描述
客户端拿到这个证书以后,因为证书是第三方机构使用私钥加密的。客户端必须要有第三方机构提供的公钥才能解密证书。这块又涉及到第三方机构的公钥怎么传输?(假设是先内置在系统中)以及还有一个问题,第三方机构颁发的证书是面向所有用户,不会只针对一家发放。如果不法分子也去申请一个证书呢?

如果不法分子也拿到证书?

如果不法分子也申请了证书,那它可以对证书进行调包。 客户端在这种情况下是无法分辨出收到的是你的证书,还是中间人的。因为不论是中间人的、还是你的证书都能使用第三方机构的公钥进行解密。
在这里插入图片描述
在这里插入图片描述

验证证书的有效性

事情发展到现在,问题演变成了,客户端如何识别证书的真伪?在现实生活中,要验证一个东西的真伪,绝大部分都是基于编号去验证(比如大学毕业证书,比如买的数码产品是否是山寨),证书上写了如何根据证书的内容生成证书编号。客户端拿到证书后根据证书上的方法自己生成一个证书编号,如果生成的证书编号与证书上的证书编号相同,那么说明这个证书是真实的.这块有点类似于 md5 的验证,我们下载一个软件包,都会提供一个 md5 的值,我们可以拿到这个软件包以后通过一个第三方软件去生成一个 md5 值去做比较,是不是一样如果一样表示这个软件包没被篡改过
在这里插入图片描述
浏览器内置的 CA 公钥可以解密服务端 CA 私钥加密的证书,通过浏览器内置的 CA 证书的证书编号算法对服务端返回的证书编号进行验签
在这里插入图片描述

第三方机构的公钥证书存哪里?

浏览器和操作系统都会维护一个权威的第三方机构列表(包括他们的公钥)因为客户端接收到的证书中会些颁发机构,客户端就根据这个办法机构的值在本地找到响应的公钥,证书就是 HTTPS 中的数字证书,证书编号就是数字签名,而第三方机构就是数字证书的签发机(CA)

Https 原理分析

HTTPS 证书的申请过程

  1. 服务器上生成 CSR 文件(证书申请文件,内容包括证书公钥、使用的 Hash 签名算法、申请的域名、公司名称、职位等信息)
    在这里插入图片描述
    在这里插入图片描述
  2. 把 CSR 文件和其他可能的证件上传到 CA 认证机构, CA 机构收到证书申请之后,使用申请中的 Hash 算法,对部分内容进行摘要,然后使用 CA 机构自己的私钥对这段摘要信息进行签名(相当于证书的唯一编号)
  3. 然后 CA 机构把签名过的证书通过邮件形式发送到申请者手中。
  4. 申请者收到证书之后部署到自己的 web 服务器中

客户端请求交互流程

1. 客户端发起请求(Client Hello 包)

  • a) 三次握手,建立 TCP 连接
  • b) 支持的协议版本(TLS/SSL)
  • c) 客户端生成的随机数 client.random,后续用于生成“对话密钥”
  • d) 客户端支持的加密算法
  • e) sessionid,用于保持同一个会话(如果客户端与服务器费尽周折建立了一个 HTTPS 链接,
    刚建完就断了,也太可惜)

2. 服务端收到请求,然后响应(Server Hello)

  • a) 确认加密通道协议版本
  • b) 服务端生成的随机数 server.random,后续用于生成“对话密钥”
  • c) 确认使用的加密算法(用于后续的握手消息进行签名防止篡改)
  • d) 服务器证书(CA 机构颁发给服务端的证书)

3. 客户端收到证书进行验证

  • a) 验证证书是否是上级 CA 签发的, 在验证证书的时候,浏览器会调用系统的证书管理器接口对证书路径中的所有证书一级一级的进行验证,只有路径中所有的证书都是受信的,整个验证的结果才是受信
  • b) 服务端返回的证书中会包含证书的有效期,可以通过失效日期来验证 证书是否过期
  • c) 验证证书是否被吊销了
  • d) 前面我们知道 CA 机构在签发证书的时候,都会使用自己的私钥对证书进行签名证书里的签名算法字段 sha256RSA 表示 CA 机构使用 sha256 对证书进行摘要,然后使用 RSA 算法对摘要进行私钥签名,而我们也知道 RSA 算法中,使用私钥签名之后,只有公钥才能进行验签。
  • e) 浏览器使用内置在操作系统上的 CA 机构的公钥对服务器的证书进行验签。确定这个证书是不是由正规的机构颁发。验签之后得知 CA 机构使用 sha256 进行证书摘要,然后客户端再使用 sha256 对证书内容进行一次摘要,如果得到的值和服务端返回的证书验签之后的摘要相同,表示证书没有被修改过
  • f) 验证通过后,就会显示绿色的安全字样
  • g) 客户端生成随机数, 验证通过之后,客户端会生成一个随机数 pre-master secret, 客户端根据之前的: Client.random + sever.random + pre-master 生成对称密钥然后使用证书中的公钥进行加密, 同时利用前面协商好的 HASH 算法,把握手消息取 HASH 值,然后用 随机数加密 “握手消息+握手消息 HASH 值(签名)” 并一起发送给服务端 (在这里之所以要取握手消息的 HASH 值,主要是把握手消息做一个签名,用于验证握手消息在传输过程中没有被篡改过。 )

4. 服务端接收随机数

  • a) 服务端收到客户端的加密数据以后,用自己的私钥对密文进行解密。然后得到client.random/server.random/pre-master secret, HASH 值,并与传过来的 HASH 值做对比确认是否一致。
  • b) 然后用随机密码加密一段握手消息(握手消息+握手消息的 HASH 值 )给客户端

5. 客户端接收消息

  • a) 客户端用随机数解密并计算握手消息的 HASH,如果与服务端发来的 HASH 一致,此
    时握手过程结束,
  • b) 之 后 所 有 的 通 信 数 据 将 由 之 前 交 互 过 程 中 生 成 的 pre master secret /
    client.random/server.random 通过算法得出 session Key,作为后续交互过程中的对称
    密钥

https 应用实战

为了更好的理解 https 的原理,我们基于 Nginx 配置一个 https 的证书。在生产环境中的 SSL 证书都需要通过第三方认证机构购买,分为专业版 OV 证书(浏览器地址栏上不显示企业名称)和高级版 EV(可以显示企业名称)证书,证书所保护的域名数不同也会影响价格(比如只对 www 认证和通配*认证,价格是不一样的),且不支持三级域名。代表证书过期或者无效,如果是黄色的话代表网站有部分连接使用的仍然是 http 协议。 如果大家自己买了域名的话,可以在阿里云上申请一个免费的证书来使用我们为了演示证书的申请过程,直接使用 openssl,自己作为证书颁发机构来制作证书,但是这个证书是不受信任的,所以到时候演示的结果浏览器会提示证书不受信的错误

证书的申请过程

生成服务器证书的申请文件和私钥文件

在 nginx 的 conf 目录下创建 cert 文件夹,在该文件夹中生成公私钥
【openssl req -nodes -newkey rsa:2048 -out myreq.csr -keyout privatekey.key】
req: 表示发出一个申请数字证书的请求
rsa:2048表示加密算法以及长度
out: 输出一个请求文件
keyout: 生成私钥
myreq.csr ,证书签名请求,这个并不是一个证书,而是向权威机构获取签名证书的申请,它的主要内容是一个公钥
privatekey.key, 与公钥相匹配的私钥

CSR(证书请求文件), 用来向 CA 机构申请的文件,一般以 CSR 结尾, 包含申请证书所需要的
相关信息,其中最重要的是域名,填写的域名必须是你要 https 方式访问的那个域名
一个是 KEY 文件,这个文件一定要保存好,这个文件就是对应 server 端的私钥,这个信息首
先是重要,如果这个 KEY 文件没有保存好,是无法找回的,因为 KEY 生成的过程不可逆,即
使填写的过程都一样,生成的 KEY 是不通的,具有随机性
➢ 运行这个命令以后,需要输入很多信息
section 部门
在这里插入图片描述

模拟 CA 机构制作 CA 机构证书

CA 机构有自己的公私钥, CA 会使用自己的公私钥对证书申请者提交的公钥进行加密。所以为了模拟 CA 机构的工作流程,需要先创建一个 CA 的证书
openssl 的配置文件: /etc/pki/tls/openssl.cnf
以下是 openssl CA 的默认配置,我们需要配置 CA 的证书,就需要在指定的目录下创建对应的文件
在这里插入图片描述

  1. 创建所需要的文件
    touch /etc/pki/CA/index.txt 生成证书索引数据库文件
    echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号,必须是两位十六进制数, 99
    之后是 9A
  2. CA 自签证书-生成私钥
    cd /etc/pki/CA/
    openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048
  3. 生成自签名证书
    openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 365 -out
    /etc/pki/CA/cacert.pem
    提示输入国家,省,市,公司名称,部门名称, CA 主机名(颁发者名称)
  4. 颁发证书
    openssl ca -policy policy_anything -in myreq.csr -out mycert.crt -days 365
    policy policy_anything policy 参数允许签名的 CA 和网站证书可以有不同的国家、地名等信

    out: ca 颁发的证书文件
    days 证书有效期

nginx 配置 https

在 nginx.conf 中配置 server 段, 将证书 mycert.pem 和私钥 pem 添加到指定文件中

server {listen 443 ssl;ssl on;ssl_certificate cert/mycert.crt;ssl_certificate_key cert/privatekey.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;}
}

x.509 标准的证书,有两种编码格式,一种是 PEM、一种是 DER。
但实际上我们在创建证书和私钥的时候,并不一定要以 PEM 或者 DER 作为扩展名。
比如证书的表示方式有: PEM、 DER、 CRT、 CER
私钥或者公钥的表示形式: PEM、 DER、 KEY
只是对应的编码格式不同而已

nginx 添加 https 支持

要给已经安装好的 nginx 添加证书支持,需要按照以下步骤来进行

  1. 【/data/program/nginx/sbin/nginx -V】 查看之前 nginx 编译安装了哪些模块,避免遗漏掉一些模块配置导致出现问题
  2. 【cd /data/program/nginx-1.11】 进入之前下载的 nginx 源码包目录中
  3. 【 ./configure --prefix=/data/program/nginx --with-http_stub_status_module --withhttp_ssl_module】 重新编译,添加 ssl 模块支持
  4. 【make】 执行 make 命令,千万不能执行 make install,不然会把之前已经安装的 nginx覆盖掉
  5. 【cp /data/program/nginx/sbin/nginx /data/program/nginx/sbin/nginx.bak】 备份原来的启动脚本
  6. 【cp objs/nginx /data/program/nginx/sbin/】 替换 nginx 的二进制脚本
  7. 【/data/program/nginx/sbin/nginx -V】 再次验证是否把需要的模块编译进去了
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. ngrok | 内网穿透工具

    ngrok 百度:ngrok是一个反向代理,通过在公共的端点和本地运行的web服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,以便后期分析和重放。 其实说白了,ngrok就是一款内网穿透的工具。 反向代理和内网穿透&…...

    2024/4/25 1:20:20
  2. Linux:xshell连接centos虚拟机很慢的解决方案

    vmware安装完centos以后发现xshell和xftp连接服务器很慢,这是因为在登录时,需要反向解析dns,因此,修改linux配置文件 进入配置文件: vi /etc/ssh/sshd_config 找到如下配置节点: # UseDNS yes 修改为&…...

    2024/4/10 0:15:22
  3. 力扣刷题:利用广度优先算法实现二叉树层序遍历

    java代码实现如下 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/ class Solution {public List<List<Integer>> levelOrderBottom(TreeNode…...

    2024/4/10 12:20:17
  4. MapReduce简介

    什么是MapReduce&#xff1f; Mapreduce 是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于 hadoop 的数据分析 应用”的核心框架。 Mapreduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的 分布式运算程序&#xff0c;并发运行在一个hadoop …...

    2024/4/9 23:50:07
  5. PHP 取URL根域名

    在某个项目中需要拿到根域名&#xff0c;但是有些域名是com.cn&#xff0c;com.hk等等这时候就不好拿对应的根域名。 /*** 取得根域名* param type $domain 域名* return string 返回根域名*/public function GetUrlToDomain($domain){$domain_postfix_cn_array [".aaa&q…...

    2024/4/16 18:20:38
  6. 【69】十一看《天道》有感

    世界上有四种人&#xff1a; 一是先看到然后相信&#xff0c;总结经验&#xff0c;下次就能早点看见&#xff0c;即使看不到也会选择相信那个开天眼的人&#xff0c;这是所谓聪明人&#xff0c;欧阳雪&#xff0c;肖亚文&#xff0c;韩楚风&#xff0c;皆属于此类。二是看到…...

    2024/4/22 18:32:38
  7. 门店4200家却年亏2.6亿,名创优品的商业模式之困

    作者 | 观察团 来源 | 金融观察团 仅剩一步之遥。 10月7日&#xff0c;名创优品&#xff08;MINISO Group Holding Limited&#xff09;更新了招股书&#xff0c;拟发行3040万股ADS。据媒体计算&#xff0c;名创优品估值达到了54亿美元。 招股书显示&#xff0c;名创优品全球门…...

    2024/4/22 0:16:49
  8. 为什么说java spi破坏双亲委派模型?

    这个问题在之前粗略的了解过&#xff0c;知道有这么回事&#xff0c;也不难理解&#xff0c;但是究其细节&#xff0c;很多点并非足够经得起推敲。现在就来抽丝剥茧梳理一遍。 类加载器&#xff08;classloader&#xff09; 先从类加载器说起&#xff0c;凡事先问是什么&#…...

    2024/5/2 2:22:28
  9. 打算一个月内学会go,现在从头开始吧1

    下载go安装&#xff0c;加环境变量自然不必多说 安装goland 建议https://download.jetbrains.com/go/goland-2019.2.3.exe 主要是这版本破解的比较多.... 简直设置一下 框架选择beego 先运行一下简单的 ok&#xff0c;没问题&#xff0c;第一步先就这样了...

    2024/4/26 14:36:05
  10. 携程Apollo配置中心教程 第一弹

    1、核心概念 Apollo支持4个维度管理Key-Value格式的配置&#xff1a; application (应用)environment (环境)cluster (集群)namespace (命名空间) 1.1、application (应用) 这个很好理解&#xff0c;就是实际使用配置的应用&#xff0c;Apollo客户端在运行时需要知道当前应用…...

    2024/4/19 5:27:04
  11. 全局异常处理之@ControllerAdvice实战

    目录 跳转至错误页面 返回json字符串ResponseBody 内容:全局捕获一些没有被catch到的异常&#xff0c;进行统一处理 自定义一个异常 NotFoundException.java public class NotFoundException extends Exception{public NotFoundException(String message) {super(message);…...

    2024/5/1 5:07:10
  12. 编程语言的四个基本准则

    编译语言的四个基本准则1.最高准则---无二义性  1.1基本理解  1.2具体体现     1.2.1运算符的优先级与结合性     1.2.2 标识符命名规则     1.2.3 贪心规则     1.2.4 作用域     1.2.5 命名空间的提出2.次高准则---高效性  2.1 基本理解  2.2 具…...

    2024/4/30 12:28:12
  13. HTTP状态码----精简记忆

    一&#xff1a;状态码分类&#xff1a; 状态码状态描述简单记忆1开头等待客户端继续请求等待2开头收到请求&#xff0c;处理成功成功3开头重定向重定向4开头客户端错误客户端5开头服务器错误服务器 二&#xff1a;最常用的状态码&#xff1a; 状态码状态描述100客户端继续请求…...

    2024/4/10 1:57:12
  14. mysql控制台的连接

    第一步&#xff1a;输入设置MySQL时的密码。 第二部&#xff1a;输入 Show databases;...

    2024/4/21 23:22:43
  15. 力扣 933. 最近的请求次数 C++队列问题

    写一个 RecentCounter 类来计算特定时间范围内最近的请求。 请你实现 RecentCounter 类&#xff1a; RecentCounter() 初始化计数器&#xff0c;请求数为 0 。 int ping(int t) 在时间 t 添加一个新请求&#xff0c;其中 t 表示以毫秒为单位的某个时间&#xff0c;并返回过去…...

    2024/4/21 22:08:37
  16. 苹果wwdc2020宣布:放弃英特尔芯片改自研芯片

    在最新的WWDC大会上最为震惊的便是苹果Mac弃用英特尔芯片&#xff0c;转而使用自家的、基于ARM架构的Mac芯片。 自2005年起&#xff0c;苹果就与英特尔合作开发Mac处理器。苹果此举可能证实&#xff0c;它将与英特尔分道扬镳&#xff0c;这对英特尔和整个计算行业来说都将是一个…...

    2024/4/21 21:20:01
  17. 使用IDEA自带的Generate JavaDoc工具出现中文乱码问题

    解决方法&#xff1a; 在Generate JavaDoc工具面板中添加命令行参数&#xff1a;-encoding utf-8 -charset utf-8&#xff0c;设置为UTF-8编码即可。...

    2024/4/21 11:23:34
  18. shell脚本(一)

    shell脚本的使用&#xff08;一&#xff09; 在一些复杂的Linux维护工作中&#xff0c;大量重复性的输入和交互操作不仅费时费力&#xff0c;而且容易出错. 而编写一个恰到好处的Shell脚本程序&#xff0c;可以批量处理.自动化地完成—系列维护任务&#xff0c;大大减轻管 理员…...

    2024/5/3 5:23:05
  19. vue总结03--组件化

    组件化 组件是可复用的 Vue 实例&#xff0c;带有一个名字&#xff0c;我们可以在一个通过 new Vue 创建的 Vue 根实例中&#xff0c;把 这个组件作为自定义元素来使用。 文章目录组件化组件基础一、组件注册、使用及数据传递二、自定义事件及其监听三、在组件上使用v-model四…...

    2024/4/14 18:09:22
  20. 设计模式初识——代理模式

    一 概述 由于某些原因需要给某对象提供一个代理以控制该对象的访问&#xff0c;这时&#xff0c;访问对象不适合或者不能直接引用目标对象&#xff0c;代理对象作为访问对象和目标对象之间的中介。 二 代理模式 代理模式的核心是由代理对象来替代访问对象对目标对象的访问。…...

    2024/4/22 19:41:03

最新文章

  1. LeetCode-网络延迟时间(Dijkstra算法)

    每日一题 今天刷到一道有关的图的题&#xff0c;需要求单源最短路径&#xff0c;因此使用Dijkstra算法。 题目要求 有 n 个网络节点&#xff0c;标记为 1 到 n。 给你一个列表 times&#xff0c;表示信号经过 有向 边的传递时间。 times[i] (ui, vi, wi)&#xff0c;其中 …...

    2024/5/3 6:46:25
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Jmeter02-1:参数化组件CVS

    目录 1、Jmeter组件&#xff1a;参数化概述 1.1 是什么&#xff1f; 1.2 为什么&#xff1f; 1.3 怎么用&#xff1f; 2、Jmeter组件&#xff1a;参数化实现之CSV Data Set Config(重点中重点) 2.1 是什么&#xff1f; 2.2 为什么&#xff1f; 2.3 怎么用&#xff1f; …...

    2024/5/1 13:53:24
  4. 前端学习<二>CSS基础——17-CSS3的常见边框汇总

    CSS3 常见边框汇总 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>CSS3 边框</title><style>body, ul, li, dl, dt, dd, h1, h2, h3, h4, h5 {margin: 0;padding: 0;}​body {background-c…...

    2024/5/1 13:58:41
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/2 11:19:01
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/2 16:04:58
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/2 23:55:17
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/2 9:47:31
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/2 9:47:31
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/2 6:03:07
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/2 9:47:30
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/2 23:47:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/2 5:31:39
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/3 1:55:15
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/2 9:47:28
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/2 9:47:27
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/3 1:55:09
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/2 8:37:00
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/2 9:47:26
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/2 23:47:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/2 18:46:52
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/2 7:30:11
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/3 1:54:59
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57