阿里云ACK中Nginx ingress使用CLB上的Https证书
背景: 我们在客户那里部署了一套服务, 服务运行在客户提供的 ACK 集群, 我们删除了客户 ACK 自带的 nginx ingress, 通过自建的方式部署了两套 ingress, 一套绑定了公网 四层 CLB, 一套绑定了内网 四层 CLB, 也就是说是 CLB 转发到 ingress, 然后通过 ingress 转发到其他服务. 现在需要配置 Https 证书, 客户不同意我们配置证书到 ingress, 客户将证书放在了 CLB 上, 给了一个证书 ID 查询阿里云文档阿里云的文档还是很详细, 通过 google 查询到文档地址: 通过Annotation配置传统型负载均衡CLB 具体可以查看这里 HTTPS 请求会在 CLB 层解密,然后以 HTTP 请求的形式发送给后端的 Pod。 这个在腾讯云的四层负载均衡里叫 TCP SSL 监听器。 配置 LoadBalancer 类型的 Service因为我们的 CLB 是只给 ingress 使用, 所以修改 ingress 的 Service 配置...
Django RestFramework 自定义显示字段
有的时候序列化出来的字段并不是我们想要的, 比如说返回的用户 id,而我们想要返回的是用户名, 这个时候可以用到 django rest framework 的自定义字段功能。 先看一下原始数据1234567891011121314[ { "id": 1, "name": "1", "desc": "sdg", "user": 1 }, { "id": 5, "name": "1", "desc": "sdg", "user": 2 }] 这里 user 显示的是 id, 并不是我们想要的 username 增加一个字段, 显示...
curl常用操作记录
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 参考文章: https://www.ruanyifeng.com/blog/2019/09/curl-reference.html 参数-A-A 参数指定客户端的用户代理标头,即 User-Agent。curl 的默认用户代理字符串是 curl/[version]。 12345# 将User-Agent改成 Chrome 浏览器curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com# 移除User-Agentcurl -A '' https://google.com 也可以通过...
检查域名支持的HTTPS协议版本
使用 NMAP(推荐)依赖于 nmap, nmap 需要安装 1nmap --script ssl-enum-ciphers -p 443 baidu.com 比如 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 验证12curl --tlsv1 --tls-max 1.0 https://github.comcurl --tlsv1 --tls-max 1.0 https://www.baidu.com 报错说明不支持当前版本: 1curl: (35) LibreSSL/3.3.6: error:1404B42E:SSL routines:ST_CONNECT:tlsv1...
使用openssl对文件进行加密
使用密码加密12345678# 指定输入和输出文件操作openssl enc -e -aes256 -in test.sh -out enc.sh# 或者使用管道符cat test.sh | openssl enc -e -aes256 -out enc.sh# 压缩后加密tar zcvf - 1.sh | openssl enc -e -aes256 -out temp 使用密码解密12345678# 指定输入和输出文件操作openssl enc -d -aes256 -in enc.sh -out 1.sh# 或者使用管道符进行操作openssl enc -d -aes256 -in enc.sh | tee a.sh# 解密后进行解压openssl enc -d -aes256 -in temp | tar zxvf -
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 默认情况12345678910111213141516171819{ "count": 2, "next": null, "previous": null, "results": [ { "id": 2, "url": "http://localhost:8000/api/category/2/", "title": "AAA", ...
查看Navicat保存的密码
Navicat 密码一旦保存, 再次编辑就没法查看密码是什么了, 包括之前可以使用的星号密码查看器也看不到密码, 我们可以通过导出链接文件, 然后通过解密被加密的密码来获取密码原文. 导出加密密码打开 Navicat – 文件 – 导出连接 接下来的弹窗里, 勾选导出密码, 然后导出成 ncx 文件 用文本编辑器打开 connections.ncx 文件, 复制 password 的值, 这个就是加密后的密码. 使用 PHP 解密电脑没有 PHP 环境, 所以选择使用 Docker 来运行 PHP, 操作如下: 准备解密脚本vim...
Django RestFramework 使用router生成路由
django 使用的是模块化结构,每个 app 都可以独立拆分,那么注册路由的时候也可以灵活一点, 使用 drf 框架提供的 router 来自动生成路由 应用级 urls.py 12345678910111213from django.urls import path, includefrom rest_framework import routersfrom app01 import viewsrouter = routers.DefaultRouter()router.register(r'groups', views.GroupViewSet)router.register(r'students', views.StudentViewSet)urlpatterns = [ path('/', include(router.urls)),] 这里 path 路径是/, 引用了 router, router 注册了两个路由, 分别是 groups 和 students, 生成的 api 路径就是...
bat命令修改windows环境变量
在 bat 下修改环境变量有几种方式, 比如 set setx vmic ENVIRONMENT setwindows 的 set 和 bash 里面直接赋值类似, 只在当前脚本中生效, 比如 1234set a=becho %a%b setxsetx 和 set 类似, 不一样的是 setx 会把设置持久化保存起来 1setx a c 因为 setx 直接将环境变量保存在注册表中, 所以 cmd 终端需要关闭重新打开才能生效 12echo %a%c 后续就算重启电脑, 也会生效, 不过数据量比较大的时候会报错: WARNING: The data being saved is truncated to 1024 characters, 最终修改的内容也是不完整的。所以不建议使用 vmicwmic 常用命令1234567891011# 创建系统变量wmic ENVIRONMENT create...
使用kubectl进行多集群管理
平常使用跳板机来管理, 经常多个环境多套集群, 那么如何用一个 kubectl 如何管理这些集群. 推荐方式这种方式对系统的侵入性比较小,也不用修改 kubeconfig 文件,也不用在 linux 中增加用户等。。 准备不同的 kubeconfig 文件,比如 prod uat 脚本一12export KUBECONFIG=./prod bash 这里 export 是必须的,export 的作用是将环境变量传递到子进程中,而 bash 是这个脚本的子进程。 脚本二1KUBECONFIG=./prod 执行的时候通过 . a.sh 或 source a.sh 的时候,source 或 . 的作用是将环境变量传递到当前 shell 中。 使用不同的 kubeconfig 管理使用不同的 Linux 用户每个 Linux 用户的 ~/.kube/config 配置不同即可, 比如创建一个 uat 用户,一个 prod 用户, 分别配置不同的 config 文件 使用环境变量设置一个 KUBECONFIG 指定到 kubeconfig...