记录访问 HTTPS 网站报错问题
1 简介1.1 常用排查思路在客户端访问 HTTPS 服务器时关于 TLS 的相关问题常见有:密码套件协商失败、证书过期等。定位手段可以使用如下命令:
12curl -vk https://www.example.comstrace openssl s_client -tlsextdebug -connect www.example.com:443
通过 OpenSSL 命令可以看到访问的更多信息。
另外为了查看 TLS 握手过程,可以通过 tcpdump、wireshark 等工具进行抓包。
1.2 常用工具在发现 密码套件协商失败或者TLS握手中某些扩展参数协商失败(椭圆曲线选择),可以通过 工具扫描查看服务器支持的密码套件和椭圆曲线等。
nmap
安装nmap工具:首先需要在Linux系统上安装nmap工具。可以通过包管理器(如apt、yum等)进行安装,或者从官方网站下载并编译安装。运行nmap扫描:使用以下命令运行nmap扫描,以获取目标服务器支持的TLS协议和密码套件信息:
1nmap --script ssl-enum-ciphers -p 443 <目标IP地 ...
Untitled
#watermark {
position: relative;
overflow: hidden;
}
#watermark .x {
position: absolute;
top: 800;
left: 400;
color: #3300ff;
font-size: 50px;
pointer-events: none;
opacity:0.5;
filter:Alpha(opacity=50);
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
}
html{color:#333;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-rendering:optimizelegibility;font-family:Helvetica Neue,PingFang SC,Verdana,Microsoft ...
Untitled
#watermark {
position: relative;
overflow: hidden;
}
#watermark .x {
position: absolute;
top: 800;
left: 400;
color: #3300ff;
font-size: 50px;
pointer-events: none;
opacity:0.5;
filter:Alpha(opacity=50);
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
}
html{color:#333;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-rendering:optimizelegibility;font-family:Helvetica Neue,PingFang SC,Verdana,Microsoft ...
Untitled
#watermark {
position: relative;
overflow: hidden;
}
#watermark .x {
position: absolute;
top: 800;
left: 400;
color: #3300ff;
font-size: 50px;
pointer-events: none;
opacity:0.5;
filter:Alpha(opacity=50);
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
}
html{color:#333;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-rendering:optimizelegibility;font-family:Helvetica Neue,PingFang SC,Verdana,Microsoft ...
趣谈网络协议
0 参考资料知识图谱
代码地址:https://github.com/popsuper1982/tcpipillustrated
1 通信协议综述2 底层网络协议2.1 二层到三层2.1.1 物理层和MAC层同一个物理层之间可以使用Hub连接,也就是集线器。这种设备有多个口,可以将宿舍里的多台电脑连接起来。但是,和交换机不同,集线器没有大脑,它完全在物理层工作。它会将自己收到的每一个字节,都复制到其他端口上去。这是第一层物理层联通的方案。
第二层,数据链路层,也即MAC层要解决的问题有,
这个包是发给谁的?谁应该接收?大家都在发,会不会产生混乱?
有没有谁先发、谁后发的规则?
如果发送的时候出现了错误,怎么办?
数据包应该发给谁,谁先发,谁后发,防止混乱等。学名叫多路访问。有很多算法可以解决这个问题。就像车管所管束马路上跑的车,能想的办法都想过了。
方式一:分多个车道。每个车一个车道,你走你的,我走我的。这在计算机网络里叫作信道划分;
方式二:今天单号出行,明天双号出行,轮着来。这在计算机网络里叫作轮流协议;
方式三:不管三七二十一,有事儿先出门,发现特堵,就回去。错过高峰再出。 ...
Kubernetes 核心组件(二)
0 参考资料课程:《云原生训练营》书籍:《Kubernetes源码剖析》
1 Kubernetes 核心数据结构1.1 Group、Version、Resource核心数据结构Kubernetes将资源再次分组和版本化,形成Group(资源组)、Version(资源版本)、Resource(资源)。Group、Version、Resource核心数据结构如图所示:
Group :被称为资源组,在Kubernetes API Server中也可称其为APIGroup。
Version :被称为资源版本,在Kubernetes API Server中也可称其为APIVersions。
Resource :被称为资源,在Kubernetes API Server中也可称其为APIResource。
Kind :资源种类,描述Resource的种类,与Resource为同一级别。
Kubernetes系统支持多个Group,每个Group支持多个Version,每个Version支持多个Resource,其中部分资源同时会拥有自己的子资源(即SubResource)。例如,Dep ...
Kuberbetes 核心组件(一)
0 参考资料课程:《云原生训练营》书籍:《Kubernetes源码剖析》、《深入浅出Kuberbetes》
Kubernetes官网文档:https://kubernetes.io/zh-cn/docs/home/
代码走读:https://cncamp.notion.site/kubernetes-8a9d48ee26284b3c8ddf9de4c62ea895
K8S源码分析-Informer机制
1 Kube-APIServer1.1 概述kube-apiserver是Kubernetes最重要的核心组件之一,主要提供以下的功能:
提供集群管理的REST API接口,包括 认证授权、数据校验、集群状态变更等
提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd)
1.1.1 Kubernetes Pod资源创建流程
Kubernetes Pod资源对象创建流程介绍如下:
使用kubectl工具向Kubernetes API Server发起创建Pod资源对象的请求。
Kubernetes AP ...
Java--File类与IO流
1. java.io.File类的使用1.1 概述
File类及本章下的各种流,都定义在java.io包下。
一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)
File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
File对象可以作为参数传递给流的构造器。
想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。
1.2 构造器
public File(String pathname) :以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
public File(String parent, String child) :以parent为父路径,child为子路径创建File对象。
public File(File parent, St ...
Java--常用类和基础API
1 不可变字符序列:String1.1 String的特性
java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"hello" )都可以看作是实现此类的实例。
字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。
字符串String类型本身是final声明的,意味着我们不能继承String。
String对象的字符内容是存储在一个字符数组value[]中的。"abc" 等效于 char[] data={'h','e','l','l','o'}。
123456789//jdk8中的String源码:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage ...