cfssl简单使用

1、安装

方式1:直接下载

详见:手动生成证书 | Kubernetes  

# 1、下载cfssl、cfssljson、cfssl-certinfo
# cfssl:用于签发证书
# cfssljson:将cfssl签发生成的证书(json格式)变成文件承载式文件
# cfssl-certinfo:验证查看证书信息
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/local/bin/cfssl-certinfo# 2、给cfssl、cfssljson、cfssl-certinfo添加可执行权限
chmod +x /usr/local/bin/cfssl*

方式2:源码编译

详见:https://github.com/cloudflare/cfssl

安装go:

# 1、下载页面:https://go.dev/dl/# 2、下载go
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz# 3、解压
tar -xf go1.21.6.linux-amd64.tar.gz# 4、移动go到/usr/local/go
mv go /usr/local/go# 5、添加到环境变量
vi /root/.bash_profile # 6、/root/.bash_profile文件内容:
# 内容开始----------------------------------------------
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programs
# 【此处添加go相关信息,并追加到PATH环境变量中】
GO_PATH=/usr/local/go/binPATH=$PATH:$HOME/bin:$GO_PATHexport PATH
# 内容结束----------------------------------------------# 7、使环境变量生效
source /root/.bash_profile# 8、在任意目录执行
go version

安装cfssl:

# 1、下载页面:https://github.com/cloudflare/cfssl/releases# 2、下载cfssl
wget https://github.com/cloudflare/cfssl/archive/refs/tags/v1.6.4.tar.gz -O cfssl-1.6.4.tar.gz# 3、解压
tar -xf cfssl-1.6.4.tar.gz# 4、进入目录
cd cfssl-1.6.4# 5、编译
make# 6、查看编译后的可执行文件
ls bin# 7、可将bin目录下的文件移动到/usr/local/bin
# 移动部分可执行文件
mv cfssl /usr/local/bin/cfssl
mv cfssl-certinfo /usr/local/bin/cfssl-certinfo
mv cfssljson /usr/local/bin/cfssljson

2、使用

https://github.com/cloudflare/cfssl/tree/master

查看某个命令使用:cfssl [command] -help,其中[command]为某个命令名称

# cfssl命令,cfssl 或者 cfssl -help 或者 cfssl -h 或者 cfssl [command] -h
cfsslNo command is given.
Usage:
Available commands:ocspdumprevoke          吊销证书info            获取签名者信息serve           启动HTTP API服务器genkey          生成私钥和证书请求ocspservescanselfsign        生成自签证书bundle          生成证书bundlecertinfo        查看证书信息ocsprefreshocspsignprint-defaults  打印默认配置sign            签名证书version         查看版本gencert         生成私钥和证书gencrl          生成新的证书吊销列表
Top-level flags:-allow_verification_with_non_compliant_keysAllow a SignatureVerifier to use keys which are technically non-compliant with RFC6962.-loglevel intLog level (0 = DEBUG, 5 = FATAL) (default 1)

2.1、print-defaults

2.1.1、查看config配置

# 查看config默认配置
cfssl print-defaults config# 默认配置数据
{"signing": {"default": {"expiry": "168h"},"profiles": {"www": {"expiry": "8760h","usages": ["signing","key encipherment","server auth"]},"client": {"expiry": "8760h","usages": ["signing","key encipherment","client auth"]}}}
}
  • expiry:8760h,表示8760h/24=365天有效期
  • profiles:指定证书使用场景,后续签名生成证书及其私钥时需要指定该场景(profile)名称
  • signing:表示该证书可用于签名其它证书,生成的 ca.pem 证书中 CA=TRUE
  • server auth:表示 client 可以用该该证书对 server 提供的证书进行验证
  • client auth:表示 server 可以用该该证书对 client 提供的证书进行验证

2.1.2、查看csr配置

# 查看csr默认配置
cfssl print-defaults csr# csr默认数据
{"CN": "example.net","hosts": ["example.net","www.example.net"],"key": {"algo": "ecdsa","size": 256},"names": [{"C": "US","L": "CA","ST": "San Francisco"}]
}

CN字段说明:

  • CN:Common Name,所有csr文件都必须有字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端证书则为证书申请者的姓名。

hosts字段说明:

  • hosts:网络请求url中的合法主机名或域名集合。

注意:

1) 超过该集合范围的任何请求都不会被支持认证通过。

2) CA根证书及其私钥创建过程不需要甚至该字段。其它服务证书创建必须有该字段。

3) hosts设置技巧:一般都把"127.0.0.1"包含进去;推荐使用域名或vip(vip即虚拟ip),尽量不要用ip地址,否则后期遇到某个服务所在机器宕机要重新更换某1台或多台机器时会面临证书认证不通过的毁灭性尴尬情况,导致扩容失败,集群服务面临毁灭性灾难。这里强烈推荐用域名或vip地址,另外,如果有条件,配置之处建议多预留1-3个host地址,防止后期扩容困难

key字段说明:

  • key:key字段是必须有的字段,其内容一般也比较固定就是:{"algo":"rsa”,"size":2048},表示使用的加密算法rsa,密文长度2048。:

names字段说明: 

  • C:(Country)所在国家简称,只能是国家字母缩写,如中国:CN
  • L:(Locality) 所在地区/城市简称,如Beijing/San Francisco
  • ST:(State/Provice)所在州/省份简称,如Beijing/California
  • O:(Organization Name) 单位名称,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端单位证书则为证书申请者所在单位名称
  • OU:(other)显示其他内容,常见的内容值有“System"、"Website"等

2.2、genkey

# genkey命令
cfssl genkey -h# genkey命令说明cfssl genkey -- generate a new key and CSRUsage of genkey:cfssl genkey CSRJSONArguments:CSRJSON:    JSON file containing the request, use '-' for reading JSON from stdinFlags:-initca=false: initialise new CA-config="": path to configuration file

csr.json文件:

{"CN": "test","hosts": ["example.com","www.example.com","https://www.example.com","jdoe@example.com","127.0.0.1"],"key": {"algo": "rsa","size": 2048},"names": [{"C":  "US","L":  "San Francisco","O":  "Internet Widgets, Inc.","OU": "WWW","ST": "California"}]
}

 2.2.1、生成证书签名请求和私钥

# 生成证书签名请求和私钥
cfssl genkey csr.json# 显示结果{"csr":"证书签名请求","key":"私钥"}
{"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIIDKDCCAhACAQAweDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx\nFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xHzAdBgNVBAoTFkludGVybmV0IFdpZGdl\ndHMsIEluYy4xDDAKBgNVBAsTA1dXVzENMAsGA1UEAxMEdGVzdDCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBALiGBaS3cwbvPiCMn7E4Gtv8RcwhNssoZG64\nF9sK0Zdg4nlBz6/MJg23cRAPPgxUfFXd/Ad1S3K1xiOOW/Ron7pY4MIAfBXDv4NZ\n2w+Vz4tAGVIW32178dkRzFh9DcYSK0bTkJoHqxJ0uPr5cUcB8EmDkqoi2k4pp6lL\nfNaHP/CMz/fcYUuFEhKGrwQjVUpudcFSGbEYExw9omjLTXPcv5ETCM+99ykq4M/g\nfrE8c1AOO9E7faOJ6DUzCoG1COL92wuQa8U4gqfQL944VodoW62nQLo0ldHbCerW\n1AuX2Jx/hRtproPo+MHOn71eiKm/uqZNHyzXJuW6/GX/tQvkjN8CAwEAAaBrMGkG\nCSqGSIb3DQEJDjFcMFowWAYDVR0RBFEwT4ILZXhhbXBsZS5jb22CD3d3dy5leGFt\ncGxlLmNvbYIXaHR0cHM6Ly93d3cuZXhhbXBsZS5jb22BEGpkb2VAZXhhbXBsZS5j\nb22HBH8AAAEwDQYJKoZIhvcNAQELBQADggEBAEW4O5auXbUPhjPiknlydWMINGJ3\nk6+/zq/9J7gBaTrRH/wSeXJrbekrww/1tkRCUFLCQgczWgcaKO34j0nWIsUOSIdl\nytpzVheiB3+WIot62N6rBOpiCSRXOs9KWA1cK7lz8UcBi1GdgeEekXZSd3LJswO6\nLCTwM1dJUxzNDBHrS/UwGINBteLnqIK4O9pJHG564u1ArMncErs0tSCH7zOPcQWp\n1zbw2rL1LMo/ej8SNyr5LdlZJ9fqI6DQi0etUYUVmt/ErM86/SpIlPTL2a6I6fFb\nJ/L3K0oCEL9LC/CNMB8ZxTLjoqSgoCwlr4V54amiel31ewly2rbNCqRItgc=\n-----END CERTIFICATE REQUEST-----\n","key":"-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAuIYFpLdzBu8+IIyfsTga2/xFzCE2yyhkbrgX2wrRl2DieUHP\nr8wmDbdxEA8+DFR8Vd38B3VLcrXGI45b9GifuljgwgB8FcO/g1nbD5XPi0AZUhbf\nbXvx2RHMWH0NxhIrRtOQmgerEnS4+vlxRwHwSYOSqiLaTimnqUt81oc/8IzP99xh\nS4USEoavBCNVSm51wVIZsRgTHD2iaMtNc9y/kRMIz733KSrgz+B+sTxzUA470Tt9\no4noNTMKgbUI4v3bC5BrxTiCp9Av3jhWh2hbradAujSV0dsJ6tbUC5fYnH+FG2mu\ng+j4wc6fvV6Iqb+6pk0fLNcm5br8Zf+1C+SM3wIDAQABAoIBAHG03Mto5HAUg2NJ\nZKqvWRXQei5VFU/Rnzn/JWwsWYWABW8VV+cL1TNEpF5yFhlBArFjLohmBk00qFmG\nwzF0O2F4nV/PLqe2zVAi0fPjrFYx9Kh6QcpUw26xIgwxW4h/770gaA4SxZ+E3+yA\nRAausiSK+JjxCzd5QcD4LICCLauL/kFgIjNajTjGfjVmsDJDUF9Q5kUbcfnEj0+d\nTIG9k6XzkAgboS7o6dBK0BXDrWr2Btnzmbf0eJUXFVZkpYaHcwgqo988e8ubsoBb\niq33BDyH5+VGc/Vr5BwRoAxQOdx0JgISKMv09l0fD/DvIHivymIw5BYgn8c2/bOL\nLCDPn6kCgYEA1dp9cbXvMsG+2gEOwnTeQlrY7P3Wa5FcGtF3n6Z4ZF2D+SdwcdgO\nKPepwHe9yMYDnfQkj8eoAd6evgnAXyCqXCrFD9V83S3qj8Pdo8mw2hTcxfx6kYNX\ny5zpdgnEH6tYXr0qaGZs5WUv+q372lG8OfGfMGRrLpJVG3rTd/beDKMCgYEA3OPA\n2b5Qo/5Ejt8u7wJ/Q+wKWKx5vcWgl7KHqgfGB/+0X19OIKGcQQTa+J2dQCkfM1ZL\nYuegmtMavvQ5rrpNGJT7bwr+pjedB9cSbvr9zEkgw1cj/ZNSxak6tV130ZVr3864\nADBm2CYWyyUO26fz9yf9fdqNl7U8QEDta9uNJpUCgYB7nn19SeonsQ+d/ZaGmgAQ\n42saM/HK5JAVgJhh1V0qx1QOptm9NWOaEvAxrgYrFSvqFsM7yfI4gnPI7uIhG0Tf\nWmnnqUUwpeY9jL+GeoSczAqC+Fvx2bbaoK3j6elRVT8UJM1q5Cp2wHNnuUMpBK6F\n4EJhOusqVLSV2f58Dlx1eQKBgCC/UzP01xe49okH5XlhsWRsdgw3ZcUQq4JR4XL/\nvAgrjJ4nDvofe37YLW52T33XmtyNipebJ2BMs8Zjhrm0vQFL9Qq9YotZ61niNMVn\nSIEkxkqvfJJ3aOoM8Ls6pCzaLif8CaNdiaG5498yG0XNXInjz9z8rck0AT61YX2A\nCykRAoGAPbr3tp/XbRWDUvZNrK+lAhUEFjuFU9pBQFqBPTlFS45OrotE806QVrYi\n4vcYqvHbSypSecI10DEE7RbxIYaCr9pMqdPvlUkopp1mw5hmZprn5lE2Gz0Y/dv0\n+Aso0bCLAT7H7hx9/58h9y4IBbFOVop7g0wnZS/t18NqgO+PHE8=\n-----END RSA PRIVATE KEY-----\n"}

2.2.2、生成自签名根 CA 证书和私钥 

# 生成自签名根 CA 证书和私钥
cfssl genkey -initca csr.json | cfssljson -bare ca# 查看文件列表
ls# 显示内容,输出中将出现三个 PEM 编码的实体:私钥、csr 和自签名证书
ca.csr  ca-key.pem  ca.pem  csr.json

2.3、gencert

# 查看gencert命令
cfssl gencert -h# gencert命令说明cfssl gencert -- generate a new key and signed certificateUsage of gencert:Generate a new key and cert from CSR:cfssl gencert -initca CSRJSONcfssl gencert -ca cert -ca-key key [-config config] [-profile profile] [-hostname hostname] CSRJSONcfssl gencert -remote remote_host [-config config] [-profile profile] [-label label] [-hostname hostname] CSRJSONRe-generate a CA cert with the CA key and CSR:cfssl gencert -initca -ca-key key CSRJSONRe-generate a CA cert with the CA key and certificate:cfssl gencert -renewca -ca cert -ca-key keyArguments:CSRJSON:    JSON file containing the request, use '-' for reading JSON from stdinFlags:-initca=false: initialise new CA-remote="": remote CFSSL server-ca="": CA used to sign the new certificate-ca-key="": CA private key-config="": path to configuration file-hostname="": Hostname for the cert, could be a comma-separated hostname list-profile="": signing profile to use-label="": key label to use in remote CFSSL server

利用CA根证书及其私钥文件签发生成其它证书及其私钥

步骤如下:

  1. 创建CA根证书配置文件(ca-config.json、ca-csr.json)、目标证书签名请求文件(server-csr.json)
  2. 生成CA根证书及其私钥
  3. 生成目标证书和私钥
  4. 校验证书

详见:手动生成证书 | Kubernetes

2.3.1、创建文件

ca-config.json文件(用来生成 CA 文件):

CA根证书配置文件,一般命名为ca-config.json,它用于配置根证书的使用场景 (profile) 和具体参数 (usage,过期时间、服务端认证、客户端认证、加密等),后续在签名其它证书时需要指定特定场景 (profile)。

{"signing": {"default": {"expiry": "8760h"},"profiles": {"kubernetes": {"usages": ["signing","key encipherment","server auth","client auth"],"expiry": "8760h"}}}
}

ca-csr.json文件(用于 CA 证书签名请求):

{"CN": "kubernetes","key": {"algo": "rsa","size": 2048},"names":[{"C": "<country>","ST": "<state>","L": "<city>","O": "<organization>","OU": "<organization unit>"}]
}

server-csr.json文件(用来为 API 服务器生成秘钥和证书):

{"CN": "kubernetes","hosts": ["127.0.0.1","<MASTER_IP>","<MASTER_CLUSTER_IP>","kubernetes","kubernetes.default","kubernetes.default.svc","kubernetes.default.svc.cluster","kubernetes.default.svc.cluster.local"],"key": {"algo": "rsa","size": 2048},"names": [{"C": "<country>","ST": "<state>","L": "<city>","O": "<organization>","OU": "<organization unit>"}]
}

2.3.2、生成CA根证书及其私钥

生成 CA 秘钥文件(ca-key.pem)和证书文件(ca.pem) 

# 生成CA根证书及其私钥
cfssl gencert -initca ca-csr.json | cfssljson -bare ca# 使用命令ls查看文件列表
ca.csr  ca-csr.json  ca-key.pem  ca.pem# 注意:cfssljson -bare + 命名文件名,
# 如本例中的ca,表示生成ca.pem和ca-key.pem,分别为证书和私钥文件。
# 生成的ca.pem是CA根证书文件,ca-key.pem是其私钥文件。
# 至此,CA根证书及其私钥文件已经生成,便可以用它们来签发其他认证文件了。

2.3.3、根据CA根证书及其私钥签名生成目标证书和私钥

生成秘钥和证书,默认会分别存储为server-key.pem 和 server.pem 两个文件。 

# 生成目标证书和私钥
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem \--config=ca-config.json -profile=kubernetes \server-csr.json | cfssljson -bare server# 参数说明;
# -ca: 根证书
# -ca-key: 根秘钥
# -config: 根证书的配置文件(里面定义了很多场景)
# -profile: 选择根证书配置文件里的一个场景
# server-csr.json : 申请证书的对象的相关信息配置文件
# -bare:制造的证书文件的文件名称(或前缀)# 使用ls命令查看文件列表
ca-config.json  ca.csr  ca-csr.json  ca-key.pem  ca.pem  server.csr  server-csr.json  server-key.pem  server.pem

2.3.4、校验证书

# 方式1:使用openssl命令校验证书
openssl x509  -noout -text -in  etcd.pem# 说明:
# 确认 Issuer 字段的内容和 ca-csr.json 一致;
# 确认 Subject 字段的内容和 etcd-csr.json 一致;
# 确认 X509v3 Subject Alternative Name 字段的内容和 etcd-csr.json 一致;
# 确认 X509v3 Key Usage、Extended Key Usage 字段的内容和 ca-config.json 中 etcd-opprofile 一致;# 方式2:使用cfssl-certinfo命令校验证书
cfssl-certinfo -cert ca.pem

详见:

https://github.com/cloudflare/cfssl

Introducing CFSSL - CloudFlare's PKI toolkit

手动生成证书 | Kubernetes

CloudFlare 开源证书管理工具 cfssl 详细使用教程 - 知乎

cfssl自签CA证书用于TLS/SSL认证技术指南

cfssl使用方法重新整理说明-CSDN博客

我在B站学运维之SSL与TLS协议原理与证书签名多种生成方式实践指南 - 哔哩哔哩

cfssl证书工具_Star-Seven的技术博客_51CTO博客

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

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

相关文章

Docker设置获取环境变量

在Dockerfile中设置环境变量 在构建Docker镜像时&#xff0c;可以在Dockerfile中使用ENV指令来设置环境变量 ENV MY_ENV_VAR"ABC123" ENV指令用于设置环境变量&#xff0c;语法为 ENV <key> <value> ENV <key><value> 使用docker run命令…

【100个 Unity实用技能】☀️ | Unity中 过滤透明区域的点击事件

Unity 小知识 大智慧 &#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由 呆呆敲代码的小Y 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;Unity系统学习专栏 &#x1f332; 游戏制作专栏推荐&#x…

ARP攻击

设备因处理大量ARP报文而导致CPU负荷过重&#xff0c;同时设备学习大量的ARP报文可能导致设备ARP表项资源被无效的ARP条目耗尽&#xff0c;造成合法用户的ARP报文不能继续生成ARP条目&#xff0c;导致用户无法正常通信。 伪造的ARP报文将错误地更新设备ARP表项&#xff0c;导致…

【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)

【Flink-1.17-教程】-【四】Flink DataStream API&#xff08;1&#xff09;源算子&#xff08;Source&#xff09; 1&#xff09;执行环境&#xff08;Execution Environment&#xff09;1.1.创建执行环境1.2.执行模式&#xff08;Execution Mode&#xff09;1.3.触发程序执行…

Unity 编辑器篇|(九)编辑器美化类( GUIStyle、GUISkin、EditorStyles) (全面总结 | 建议收藏)

目录 1. GUIStyle1.1 参数总览1.2 样式代码 2. GUISkin2.1 参数总览2.2 创建自定义Skin 3. EditorStyles2.1 参数总览1.2 反射获取所有EditorStyles 1. GUIStyle GUIStyle是一个用于定制GUI控件样式的类&#xff0c;它包含了控件的外观属性&#xff0c;如字体、颜色、背景等。…

AR与AI融合加速,医疗护理更便捷

根据Reports and Data的AR市场发展报告&#xff0c;到2026年&#xff0c;预计医疗保健市场中的AR/VR行业规模将达到70.5亿美元。这一趋势主要受到对创新诊断技术、神经系统疾病和疾病意识不断增长的需求驱动。信息技术领域的进步&#xff0c;包括笔记本电脑、计算机、互联网连接…

如何让自己有安全感,顺利约会(很实用)

求爱的过程中&#xff0c;正确的框架&#xff0c;应该达到两个效果。 1、无企图心 2、建立吸引 也就是说&#xff0c;要让女人放松警惕&#xff0c;又被你的魅力吸引。 记得微信刚有朋友圈功能的时候&#xff0c;我发现一个很有趣的事情&#xff0c;朋友圈的特点&#xff0…

MySQL存储过程与触发器

存储过程 存储过程&#xff08;Stored Procedure&#xff09;是在大型数据库系统中&#xff0c;一组为了完成特定功能的SQL 语句集&#xff0c;存储在数据库中&#xff0c;经过第一次编译后&#xff0c;再次调用不需要重复编译&#xff0c;用户通过指定存储过程的名字并给出参数…

机器视觉之Open3D简介

Open3D简介 Open3D是由英特尔实验室智能系统实验室开发的开源 3D 计算机视觉库。该库为开发人员提供了一个易于使用且高性能的3D数据处理平台。Open3D 包括用于 3D 几何处理、场景重建和 3D 机器学习的高级算法&#xff0c;使其成为从事 3D 计算机视觉工作的研究人员、工程师和…

数据结构--数组和广义表

1. 数组的定义 略 2. 数组的顺序表示 由于数组定义后&#xff0c;数组的维度和每维的长度就不再改变&#xff0c;其结构是固定的&#xff0c;因此一般采用顺序存储结构。 3. 特殊矩阵的压缩矩阵 4. 广义表的定义和抽象操作 广义表一些操作可以看数据结构--广义表_空广义表的…

k8s 使用tomcat官方镜像部署集群并解决访问页面404

一、集群节点配置&#xff1a; master:192.168.206.138 k8s-node1:192.168.206.136 k8s-node2:192.168.206.137 二、下载一个Tomcat镜像 docker pull tomcat docker images | grep tomcat docker tag docker.io/tomcat tomcat 三、根据官方镜像自己构建一个一次性就能启动的…

【算法与数据结构】377、LeetCode组合总和 Ⅳ

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题明面上说是组合&#xff0c;实际上指的是排列。动态规划排列组合背包问题需要考虑遍历顺序。 d p …

node.js(express.js)+mysql实现登录功能

文章目录 前言实现步骤 实现步骤一、检测登录表单的数据是否合法&#xff08;3&#xff09;新建schema/user.js&#xff08;4&#xff09;在routes/use.js中引入schema/user.js中的方法reg_login_schema&#xff0c;代码如下&#xff1a; 二、根据用户名查询用户的数据三、判断…

rabbitMq 入门及面试大全

1&#xff0c; 什么是mq a: mq 就是消息队列&#xff0c; 是基础数据结构的 ”先进先出“ 的一种数据结构&#xff0c; 一般用来解决 &#xff0c; 解耦、异步消息、 流量削峰&#xff0c;等问题&#xff0c;高可用、可伸缩和最终一致性架构。 1&#xff0c; 解耦 &#xf…

Python 生成 图片网页列表 显示路径和建立时间 笔记

Python 一键 生成 图片网页列表 显示路径和建立时间 &#xff08;方便查看复制路径、重复一键生成&#xff09; 支持格式&#xff1a;jpg \png\ svg\ webp 图片网页列表 图示&#xff1a; 参考代码&#xff1a; # -*- coding: utf-8 -*- import os import datetime# 指定图片…

【Linux对磁盘进行清理、重建、配置文件系统和挂载,进行系统存储管理调整存储结构】

Linux 调整存储结构 前言一、查看磁盘和分区列表二、创建 ext4 文件系统&#xff0c;即&#xff1a;格式化分区为ext4文件系统。1.使用命令 mkfs.ext4 (make file system)报错如下&#xff1a;解决办法1&#xff1a;&#xff08;经测试&#xff0c;不采用&#xff09;X解决办法…

浅谈大数据智能化技术在多个领域的应用实践

摘要 大数据智能化技术在当今信息社会中得到了广泛的应用。从金融、互联网电商、视频行业到垂直短视频领域&#xff0c;从工业互联网到云计算、边缘计算等领域&#xff0c;大数据智能化技术已经成为了企业竞争力的重要组成部分。技术实践、架构设计、指标体系、数据质量、数据分…

APP 用户转化率低流失率高?可能您需要了解下这个!

如今手机的性能和内存在突飞猛进&#xff0c;但用户的时间和精力是有限的。根据《 2020 年中国移动 APP 行业分析报告》&#xff0c;在 2019 年 Q4&#xff0c;头部企业所占据手机用户的时长份额已经达到 70.7%。 APP 市场竞争激烈&#xff0c;获客难度和成本在上升&#xff0…

阿里云ECS(CentOS镜像)安装docker

目录 1.前置条件 2.连接至ECS 3.yum软件包更新 4.安装docker前置所需软件包 5.添加docker 官方的 yum 软件源 6.安装docker 7.检测是否成功 8.配置阿里云镜像加速器 1.前置条件 在看本文前保证未安装过docker,或者安装过但是清理干净 如果多次安装失败过&#xff0c;…

网络编程 day6

网络聊天室项目 1.服务器端 #include <head.h> #define SER_IP "192.168.125.11" #define SER_PORT 6666 typedef struct Msg {char user[32]; //用户名int type; //1.登录、2.发消息、0.退出char text[1024]; //消息 } msg_t; typedef struct List…