检查域名支持的HTTPS协议版本
使用 NMAP(推荐)依赖于 nmap, nmap 需要安装 比如 GitHub 只支持 TLS1.2 和 TLS1.3: 在线验证SSL Server Test (Powered by Qualys SSL Labs) 这个域名还可以检测支持的设备情况。 https://myssl.com/ https://www.ssleye.com/ssltool/cipher_suites.html https://www.site24x7.com/zhcn/tools/tls-checker.html 使用 CURL 验证 报错说明不支持当前版本: 使用 OpenSSL 如果握手失败的话,那么就是不支持了。 服务端 TLS 版本配置可以通过配置服务端,比如 nginx 来设置支持的 TLS 版本. Nginx 配置修改配置生成地址: https://ssl-config.mozilla.org/ 注意: tls 版本的配置必须全局生效,如果你有多个 vhost,那么所有都需要修改,建议直接写到一个文件内,然后通过 include 的方式来引用。 常见问题ssl_ciph...
使用openssl对文件进行加密
使用密码加密 使用密码解密
Django RESTframework 自定义Response
比如我想给返回的 json 加上 code/ msg 等信息,可以通过修改 drf 的 response 来实现。 全局生效参考:https://www.cnblogs.com/henryhong/p/djangodrf-zi-ding-yi-shu-ju-fan-hui-ge-shi.html 默认情况 djangorestframwork 可以通过自定义返回模板来重构返回数据的格式,我们查看 restframework 的默认设置可以看到,默认的模板是 rest_framework.renderers.JSONRenderer 和 rest_framework.renderers.BrowsableAPIRenderer,其中第一个是用于前端接收数据时的数据格式模板,第二个是 drf 在 api 查看界面的数据显示模式。 修改模板如果我们想要修改返回给前端的数据格式,那么我们可以首先修改配置参数(settings.py)中的 DEFAULT_RENDERER_CLASSES,将 rest_framework.renderers.JSONRenderer 修改为...
查看Navicat保存的密码
Navicat 密码一旦保存, 再次编辑就没法查看密码是什么了, 包括之前可以使用的星号密码查看器也看不到密码, 我们可以通过导出链接文件, 然后通过解密被加密的密码来获取密码原文. 导出加密密码打开 Navicat – 文件 – 导出连接 接下来的弹窗里, 勾选导出密码, 然后导出成 ncx 文件 用文本编辑器打开 connections.ncx 文件, 复制 password 的值, 这个就是加密后的密码. 使用 PHP 解密电脑没有 PHP 环境, 所以选择使用 Docker 来运行 PHP, 操作如下: 准备解密脚本vim navicat-decode-password.php 使用 Docker 版 PHP 来执行脚本执行 php 脚本,使用 cli 版本的镜像即可. 这里选择 php:8.3.1-cli 密码会打印在控制台上. 优化版脚本 脚本会读取 connections.ncx 文件,并按照格式将内容输出:
Django RestFramework 使用router生成路由
django 使用的是模块化结构,每个 app 都可以独立拆分,那么注册路由的时候也可以灵活一点, 使用 drf 框架提供的 router 来自动生成路由 应用级 urls.py 这里 path 路径是/, 引用了 router, router 注册了两个路由, 分别是 groups 和 students, 生成的 api 路径就是 /groups/ 和 /students 根级路由 urls.py 这里定义了 api/ 引入了 app01 里面的 router 那么最终的 url 结构就是:
bat命令修改windows环境变量
在 bat 下修改环境变量有几种方式, 比如 set setx vmic ENVIRONMENT setwindows 的 set 和 bash 里面直接赋值类似, 只在当前脚本中生效, 比如 vmicwmic 常用命令 举个例子 注册表方式当前用户环境变量 系统环境变量
使用kubectl进行多集群管理
平常使用跳板机来管理, 经常多个环境多套集群, 那么如何用一个 kubectl 如何管理这些集群. 推荐方式这种方式对系统的侵入性比较小,也不用修改 kubeconfig 文件,也不用在 linux 中增加用户等。。 准备不同的 kubeconfig 文件,比如 prod uat 脚本一 这里 export 是必须的,export 的作用是将环境变量传递到子进程中,而 bash 是这个脚本的子进程。 脚本二 执行的时候通过 . a.sh 或 source a.sh 的时候,source 或 . 的作用是将环境变量传递到当前 shell 中。 使用不同的 kubeconfig 管理使用不同的 Linux 用户每个 Linux 用户的 ~/.kube/config 配置不同即可, 比如创建一个 uat 用户,一个 prod 用户, 分别配置不同的 config 文件 使用环境变量设置一个 KUBECONFIG 指定到 kubeconfig 文件 使用参数同使用环境变量 使用一个 kubeconfig我觉得这种方法很繁琐且复杂,并且还会修改 kubeconfig。 准备确保...
Kubernetes使用存储挂载单个文件
一般来说, 挂载存储都是把一个 PV 挂载到一个路径, 挂载后此路径下原来的文件就会不见, 只能看到挂载后的文件, 和在 Linux 下挂载磁盘是一样的. 那么现在有个需求: 需求此服务是 java 程序, 数据库使用的是内嵌的 h2 database, 下图中的两个文件就是数据库的文件. 这两个文件是存在于根目录下的, 假设此程序数据库文件是代码写死的 (真实情况是: 数据库路径是可以更改的), 现在要部署到 kubernetes 中, 并对数据库做持久化. 使用 subpath根据之前挂载 configmap 到单个文件的经验, 我们应该使用 subpath 来挂载, 先创建好 pvc, yml 如下 statefulset 的配置 但是这样挂载后, 容器内的 metabase.db.mv.db 和 metabase.db.trace.db 是目录, 并不是文件, 程序也自然无法启动. subpath 原理下面是绑定 subPath 的源码部分,我们可以看到下面的 t.Model()&os.ModeDir 部分,如果 subPath 是一个文件夹的话就会去创建...
使用kubeadm部署一套高可用k8s 1.29集群 for AlmaLinux9(RHEL9)
基于 AlmaLinux9 使用 kubeadm 搭建集群, ubuntu部署文档, 有疑问的地方可以看 官方文档, 本教程需要能访问 国际互联网 。不能的话,需要解决镜像拉取问题、yum 安装组件的问题。 准备机器 我的机器详情如下, 配置至少为 4C4G hostname IP 作用 master1 10.0.0.11 k8s master 节点 master2 10.0.0.12 k8s master 节点 master3 10.0.0.13 k8s master 节点 worker1 10.0.0.21 k8s worker 节点 worker2 10.0.0.22 k8s worker 节点 每台机器都做域名解析,或者绑定 hosts(直接使用 ip 地址会有警告) 每台机器都关闭防火墙和 SELinux 负载均衡机器必须要关闭,因为 6443 不是 nginx 的标准端口,会被 selinux 拦截, 防火墙也需要放行 6443 端口, 可以考虑直接关闭防火墙 基础环境配置 基础环境是不管 master 还是 work...
前后端跨域问题
啥是跨域跨源资源共享(CORS,或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其他源(域、协议或端口),使得浏览器允许这些源访问加载自己的资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的“预检”请求。在预检中,浏览器发送的头中标示有 HTTP 方法和真实请求中会用到的头。 跨源 HTTP 请求的一个例子:运行在 https://domain-a.com 的 JavaScript 代码使用 XMLHttpRequest 来发起一个到 https://domain-b.com/data.json 的请求。 出于安全性,浏览器限制脚本内发起的跨源 HTTP 请求。例如,XMLHttpRequest 和 Fetch API 遵循同源策略。这意味着使用这些 API 的 Web 应用程序只能从加载应用程序的同一个域请求 HTTP 资源,除非响应报文包含了正确 CORS 响应头。 为什么会跨域说到跨域不得不谈的就是浏览器的同源策略,跨域也是因为浏览器这个机制引起的,这个机...

