Skip to content

Commit

Permalink
Merge branch 'master' of github.com:fengzhao/fengzhao-notes
Browse files Browse the repository at this point in the history
  • Loading branch information
fengzhao committed Nov 13, 2024
2 parents 7d75a35 + 930880a commit 2970799
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 14 deletions.
24 changes: 19 additions & 5 deletions docker/1、docker系列之docker容器入门.md
Original file line number Diff line number Diff line change
Expand Up @@ -1247,11 +1247,7 @@ Linux 中各发行版实现的 UnionFS 各不相同,所以docker在不同 linu



当我们构建完一个镜像之后,镜像就存储在了我们 docker 本地存储目录,默认情况下为 `/var/lib/docker`

所谓的“镜像”,实际上就是一个 Ubuntu 操作系统的 rootfs,它的内容是 Ubuntu 操作系统的所有文件和目录。

不过,与之前我们讲述的 rootfs 稍微不同的是,Docker 镜像使用的rootfs,往往由多个“层”组成:
当我们构建完一个镜像之后,镜像就存储在了我们 docker 本地存储目录,默认情况下为 `/var/lib/docker` 。所谓的“镜像”,实际上就是一个 Ubuntu 操作系统的 rootfs,它的内容是 Ubuntu 操作系统的所有文件和目录。不过,与之前我们讲述的 rootfs 稍微不同的是,Docker 镜像使用的rootfs,往往由多个“层”组成:



Expand Down Expand Up @@ -1317,7 +1313,25 @@ distribution 目录下存放着 layer 的 diff_id 和 digest 的对应关系



**manifest**
manifest(描述文件)主要存在于 registry 中作为 docker 镜像的元数据文件,在 pull、push、save 和 load 过程中作为镜像结构和基础信息的描述文件。

在镜像被 pull 或者 load 到 docker 宿主机时,manifest 被转化为本地的镜像配置文件 config。

在我们拉取镜像时显示的摘要(Digest):就是对镜像的 manifest 内容计算 sha256sum 得到的。

- `manifest`: 也可以称为 **MANIFEST****单个 manifest****普通镜像** 是关于镜像的信息,例如 overylay 层、大小和摘要。
- `manifest lists`: 也可以称为 **MANIFEST_LISTS****多 manifest****多架构镜像**,是通过指定一个或多个(理想情况下不止一个)镜像名称创建的镜像层列表。然后,它可以像 `docker pull``docker run` 命令中的映像名称一样使用。理想情况下,manifest list 是由不同的 CPU 架构 和 OS 操作系统组合的功能相同的镜像创建的。因此,`manifest lists` 通常被称为 “多架构镜像”。



一个多架构镜像(manifest lists) 允许某个服务镜像使用一个名称关联多个不同架构功能相同的镜像。

一个镜像 tag 中可以同时包含ARMv7/ARMv8/i386/AMD64/MacOS/Windows 等等不同平台运行依赖的 overlay 层等信息,在 `docker pull` 时会默认会自动下载当前机器依赖的镜像层运行,给多平台架构镜像的管理带来了很大的便利。

`docker manifest` 命令本身不执行任何操作。为了对 manifest 或 manifest list 进行操作,必须使用其中一个子命令。

该命令还可以为用户查看普通镜像提供额外的信息,比如构建映像的操作系统和架构。一定要记住,本地存储的 manifest lists 永远不会被 docker 的引擎使用。



Expand Down
14 changes: 12 additions & 2 deletions http/HTTP权威指南.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -4236,11 +4236,11 @@ https://github.com/qufei1993/blog/issues/30



HTTPS 会加密 URL 吗?
HTTPS 会加密 URL 吗?HTTPS 会加密头部吗?




HTTPS 会加密头部吗?

因为 URL 的信息都是保存在 HTTP Header 中的,而 HTTPS 是会对 `HTTP Header``HTTP Body` 整个加密的,所以 URL 自然是会被加密的。

Expand All @@ -4250,6 +4250,10 @@ HTTPS 会加密头部吗?



但请注意 hostname 一般是会被明文传送的,因为 SNI是透明的。

HTTPS 没有完全加密访问请求,因为 `Server Name` 依然是明文传输的。它发生在 HTTPS 传输过程中的 `Client Hello` 握手阶段

HTTPS 可以看到请求的域名吗?

从上面我们知道,HTTPS 是已经把 HTTP Header + HTTP Body 整个加密的,所以我们是无法从加密的 HTTP 数据中获取请求的域名的。
Expand All @@ -4258,6 +4262,12 @@ HTTPS 可以看到请求的域名吗?



**SNI信息**

SNI,即服务器名称指示,是TLS协议的扩展。它允许在握手过程开始时通过客户端告诉服务器正在连接的主机名称,从而解决一个服务器拥有多个域名的情况。

在TLS握手信息中并没有携带客户端要访问的目标地址,导致当一台服务器有多个虚拟主机,且每个主机的域名不一样,使用了不一样的证书时,不知道和哪台虚拟主机进行通信。而SNI允许Web服务器通过SSL或TLS握手的扩展在单个IP地址上托管多个站点,从而使得HTTPS网站具有唯一的TLS证书,即使它们位于共享IP地址上。使用SNI时,服务器的主机名包含在TLS握手中,这使得HTTPS网站具有唯一的TLS证书,即使它们位于共享IP地址上也是如此。



## 六、TLS基本概念
Expand Down
24 changes: 17 additions & 7 deletions linux-foundmentals/4、ssh-scp-foundmentals.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@ OpenSSL是Openssl团队的一个开源的能够实现安全套接层(SSLv2/v3

该产品支持多种加密算法,包括对称密码、哈希算法、安全散列算法等。

OpenSSL 存在操作系统命令注入漏洞,该漏洞源于c_rehash 脚本未正确清理 shell 元字符导致命令注入。攻击者利用该漏洞执行任意命令。

OpenSSL 是用于传输层安全性(TLS)协议的健壮的,商业级,功能齐全的开源工具包,因 **安全套接字层(SSL)协议** 而闻名。

这个协议的实现是基于完整功能的通用密码库,该库也可以独立使用。



OpenSSL 存在操作系统命令注入漏洞,该漏洞源于c_rehash 脚本未正确清理 shell 元字符导致命令注入。攻击者利用该漏洞执行任意命令。

```shell
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz
Expand All @@ -67,7 +67,7 @@ wget https://www.openssl.org/source/openssl-3.1.1.tar.gz



OpenSSL 代码库的地址是 https://github.com/openssl/openssl
OpenSSL 代码库的地址是 https://github.com/openssl/openssl ,项目由遍布世界的志愿者所组成的社区进行管理,他们通过互联网进行沟通、计划和开发OpenSSL工具集以及相关的文档。

用户可以从 [www.openssl.org/source](https://www.openssl.org/source) 或者 github 下载官方发行版的源代码压缩包 。OpenSSL 项目不会以二进制形式分发工具包。

Expand All @@ -79,6 +79,20 @@ OpenSSL 代码库的地址是 https://github.com/openssl/openssl





很多关于SSL/TLS以及PKI的著作,但是这些材料都存在两个问题:

(1) 你需要的内容分布在不同的地方,很难形成整体(例如,RFC),因而难以寻找;

(2) 大多数著作都非常详细而且深入底层。很多文档已经废弃。



为了让这些材料变得有价值,我花了好几年时间工作和学习,才仅仅开始理解整个生态体系。



**OpenSSL 3.0**

OpenSSL 3.0 是下一代的 OpenSSL 发布版,目前仍然在开发中。2021.11发布了3.0版本,开源协议也改成 `Apache License v2.0`
Expand Down Expand Up @@ -161,10 +175,6 @@ https://blog.csdn.net/naioonai/article/details/80984032







OpenSSL没有自带可信根证书(也叫作可信证书库)


Expand Down

0 comments on commit 2970799

Please sign in to comment.