重新生成证书 证书备份 cp -rp /etc/kubernetes /etc/kubernetes.bak 移除过期证书 rm -f /etc/kubernetes/pki/apiserver* rm etc/kubernetes/pki/etcd/server.* rm -rf /etc/kubernetes/pki/etcd/peer.* 备注:可以使用命令openssl x509 -in [证书全路径 ] -noout -text查看证书详情 在当前路径下新建config.yaml kind: MasterConfiguration apiVersion: kubeadm.k8s.io/v1alpha1 conf /tmp/ kubeadm alpha phase kubeconfig all --config config.yaml 重启kubelet systemctl restart kubelet 证书过期时间确认
如何查询企业使用了哪些SSL证书?你们是通过输入企业网站域名,点击地址栏安全锁这样一个个的去查吗?这种方式的前提是我们知道该公司的域名,这样才能查询到为其域名签发并安装的SSL证书。 CT Log查询工具是由锐安信sslTrus提供的一个证书查询工具,支持输入域名或公司名称一键查询此域名或者公司名下的全部SSL证书签发记录日志,了解证书透明度,也叫SSL证书透明日志查询工具。 图片在查询结果里可以看到证书主题,证书保护域名,有效期时长,剩余时间,当前证书状态,签发单位,点击详情还能查看到证书信息。 此外,CT Log查询工具除了能使用企业名称来查看SSL证书外,也可以输入域名查询,比如racent.com后,与之相关的子域名,多域名所绑定签发的SSL证书记录均可以查看到。 非常便捷的一个免费证书工具,值得分享!
K8S证书过期问题 K8S证书过期处理方法 Unable to connect to the server: x509: certificate has expired or is not yet valid 1、查看证书有效期: # kubeadm certs check-expiration 2、备份证书 # cp -rp /etc/kubernetes /etc/kubernetes.bak 3、直接重建证书 k8s版本1.15之前使用: # kubeadm alpha certs renew all k8s版本1.15之后使用: # kubeadm certs renew all 4、再次查看证书有效期 docker restart 容器的ID # docker restart `docker ps -a | grep -E 'apiserver|scheduler|controller-manager'` 8、 # systemctl status kubelet 或者 # kubectl get pods 至此k8s证书更新完成 !!!!
证书续期提示 当执行kubectl get nodes等提示 Unable to connect to the server: x509: certificate has expired or is not yet valid 既为k8s的证书到期的提示 使用kubeadm安装k8s时,默认生成的client certificate的有效期是1年。 续期 master节点:xxx.xxx.xxx.xxx 检查证书有效期 kubeadm alpha certs check-expiration 或 openssl x509 -in /etc/kubernetes /pki/apiserver.crt -noout -text |grep ' Not ' 备份证书 cp -rp /etc/kubernetes /etc/kubernetes.bak 重新生成证书 |k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd'|xargs docker restart 检测 systemctl status
这个图片里面的箭头在Kubernetes内部,都是双向证书,下面的内容来源于我多年前的一篇文章,本次编写进行了略为修改。 CA证书 简单来说就是证书的颁发机构,也可以叫根证书。 路径 解释 年限 /etc/kubernetes/pki/etcd/ca.crt etcd根证书 默认10年 /etc/kubernetes/pki/ca.crt k8s集群根证书 默认10年 /etc /kubernetes/pki/front-proxy-ca.crt 代理访问k8s根证书(较少使用) 默认10年 普通证书 就是由CA证书颁发的普通证书,直接应用于业务的,他也有有效期的,比如10年 etcd证书 ca.crt作为etcd的根证书,签发etcd对外提供服务的server证书和签发etcd节点之间同步使用的peer证书,kubelet向etcd发起健康检查的证书。 livenessProbe: failureThreshold: 8 httpGet: host: 127.0.0.1 path: /health
上一小节我们介绍了Kubernetes里面涉及到的证书,有的有效期是10年,有的有效期是1年,而且除了根证书是10年,实际业务使用的证书都是1年。如果证书到期,我们应该怎么续期呢? 1.查看当前证书情况 kubeadm certs check-expiration 这个图里面显示的证书其实就是我们上一小节讲过的哪些证书主要包括: 3个ca证书,3个etcd证书,3个apiserver 证书,一个kubectl证书,一个controller-manager证书,一个scheduler证书,一个proxy启用代理证书。 通过以上命令,我们可以一键续期除kubelet外的所有证书,根证书不会续期。我们也可以手工续期某一个组件,只需要把最后的证书更换成为对应的证书名字即可。 kubeadm certs renew scheduler.conf 证书续期以后,当前应用程序还需要重启才会生效,静态pod的重启,参考我们前面讲过的Kubernetes(k8s)-静态pod介绍
1.准备签发证书环境 运维主机 hdss-1-200.host.com上: 2.安装CFSSL 证书签发工具CFSSL:R1.2 cfssl下载地址 https://pkg.cfssl.org/R1.2 200 bin]# which cfssl /usr/bin/cfssl [root@hdss-1-200 bin]# which cfssl-json /usr/bin/cfssl-json 5.签发证书 root@hdss-1-200 opt]# mkdir certs [root@hdss-1-200 opt]# cd certs/ [root@hdss-1-200 certs]# 6.创建生成CA证书签名请求 .20年 } } 7.签发证书 [root@hdss-1-200 certs]# cfssl gencert -initca ca-csr.json 2021/02/08 12:13:54 ==\n-----END RSA PRIVATE KEY-----\n"} 8.做成承载式证书 [root@hdss-1-200 certs]# ls ca-csr.json [root@hdss-1-
更新Xcode8适配iOS10之后,发布时邮件提醒我推送证书有问题: 似乎是APN的证书更新了,需要修正一下。 这里主要是发布时遇到问题,所以我们先只重新配置推送消息的发布证书,调试证书有需要的话之后还是一样的步骤。 所以我们选择发布的这个: 创建证书还是和以前一样,要本地的钥匙串中的证书助理来请求证书,名字和邮箱随便填,但是务必记得选择保存在磁盘,方便找到。然后提交到这个证书的申请文件中,就创建好证书了。 把证书下载下来,将钥匙串中过期的推送证书删掉,双击新证书安装。 然后要记得,Xcode 8需要在工程名->TARGET->Capabilities中开启Push Notifications: 开启时会自动检测证书,像图中一样都是勾就ok了。
/build.sh 检查证书有效期 . k8s-master1 front-proxy-ca.crt Nov 05, 2030 02:56 UTC 8y k8s-master1 更新K8S证书 . kubernetes v1.15以上更新证书的方法 更新/etc/kubernetes/pki目录下的所有证书(不包含ca证书) 注意:需要在每一个节点上都更新 # 查看现有证书到期时间 $ kubeadm alpha certs check-expiration # 使用二进制更新证书 $ kubeadm alpha certs renew all # 每月的最后1天 crontab -e * *
初始化集群时指定证书有效期 如果你在初始化集群时需要指定证书的有效期,可以在 kubeadm 配置文件中指定证书的有效期。可以通过 --config 参数加载一个配置文件,并在该文件中设置证书有效期。 配置文件示例(kubeadm-config.yaml):apiVersion: kubeadm.k8s.io/v1beta3kind: ClusterConfigurationcertificates: 更新已存在集群的证书有效期对于已存在的集群,kubeadm 提供了证书更新功能,可以续期集群中的证书,并指定新证书的有效期。 and etcd, so that they can use the new certificates.kubectl delete pod -n kube-system kube-apiserver-k8s-master kube-controller-manager-k8s-master kube-scheduler-k8s-master etcd-k8s-master重新拷贝admin.conf文件cp /etc/
重新生成证书 证书备份 cp -rp /etc/kubernetes /etc/kubernetes.bak 移除过期证书 rm -f /etc/kubernetes/pki/apiserver* rm healthcheck-client.* rm -rf /etc/kubernetes/pki/etcd/server.* rm -rf /etc/kubernetes/pki/etcd/peer.* 重新生成证书 /etc/kubernetes/*.conf /tmp/ kubeadm alpha phase kubeconfig all 重启kubelet systemctl restart kubelet 证书过期时间确认
如果您是一家大型企业,可能需要抽出几天时间专门处理证书重签、续费等问题。但是,如果使用了通配符证书,您无需为每个子域名申请、验证SSL证书,同时也大大降低了管理不当导致多张证书过期带来的风险。 以上是通配符SSL证书普遍特点,那么如何选购最佳的通配符证书呢?需要注意哪些方面呢? 选购通配符证书注意事项 1. 市面上获得众多企业客户认可的CA有DigiCert,Geotrust,Sectigo,sslTrus等, 当然也可以选择授权代理SSL证书的平台购买通配符证书,如锐成信息,价格便宜,品牌类型多样。 虽然一些证书供应商确实提供了解决兼容性问题的替代证书,但仍有许多证书与Windows系统手机无法兼容。 优选客户服务 在提交SSL证书CSR文件时,通配符证书的通用名需要添加“*“符号,如果填写错误,那么就无法申请到您所需的SSL证书。
我们上一小节虽然介绍了如何续期,但是有没有什么方法可以在创建集群的时候就提供更长的证书时间呢? /staging/src/k8s.io/client-go/util/cert/cert.go 2.修改生成的其他证书 #把24*365 换成 24*365*100 vi . [root@localhost kubernetes]# ls _output/bin/kubeadm _output/bin/kubeadm 重新安装集群 参考Kubernetes(k8s)-k8s安装 检查证书 可以看到,无论是ca证书,还是其他业务使用的证书都是100年,包括kubelet证书也是100年,这样我们的集群就不用在考虑证书到期的问题。 ,再也不用考虑证书问题。
Kubernetes (K8S) 中Traefik自动申请证书 王先森2023-08-292023-08-29 Traefik自动申请证书 Traefik实现自动申请HTTPS证书要使用Let’s Encrypt 自动生成证书,需要使用ACME。 需要在静态配置中定义 “证书解析器”,Traefik负责从ACME服务器中检索证书。 然后,每个 “路由器 “被配置为启用TLS,并通过tls.certresolver配置选项与一个证书解析器关联。 对于AWS 私有证书颁发机构、Google Cloud 证书颁发机构服务或Cloudflare Origin CA 等不受支持的情况,外部颁发者允许您扩展证书管理器功能。 不需要手动创建 Certificate 对象了,修改上面的 whoami应用的 Ingress 资源对象,如下所示: cat << EOF >ing.yml apiVersion: networking.k8s.io
证书过期问题的两种处理方法 前情提要 公司测试环境的 k8s 集群使用已经很长时间了,突然有一天开发联系我说 k8s 集群无法访问,开始以为是测试环境的机器磁盘空间不够了,导致组件异常或者把开发使用的镜像自动清理掉了 has expired or is not yet valid 经网上搜索之后发现应该是 k8s 集群的证书过期了,使用命令排查证书的过期时间 $ kubeadm alpha certs check-expiration 发现确实是证书过期了 相关介绍以及问题解决 因为我们是使用 kubeadm 部署的 k8s 集群,所以更新起证书也是比较方便的,默认的证书时间有效期是一年,我们集群的 k8s 版本是 1.15.3 版本是可以使用以下命令来更新证书的,但是一年之后还是会到期,这样就很麻烦,所以我们需要了解一下 k8s 的证书,然后我们来生成一个时间很长的证书,这样我们就可以不用去总更新证书了。 k8s 集群,还可以通过重新编译 kubeadm 来实现一个 10 年证书的,这个我没有尝试,不过在初始化集群的时候也是一个方法。
(默认有效期 365 天),处理方法是对 Kubernetes 集群证书进行更新以重置有效期,本文将介绍具体处理过程。 Kubernetes 集群证书包括: CA(证书颁发机构)证书:用于签名其他证书,是信任链的根 API Server 证书:用于 API Server 的 TLS 认证 kubelet 证书:用于 kubelet 与 API Server 之间的通信 kube-proxy 证书:用于 kube-proxy 与 API Server 之间的通信 etcd 证书:用于 etcd 集群内部节点之间的通信 服务账户证书 处理过程 1、备份证书 cd /etc/kubernetes && mv pki pki-old 2、检测证书 # kubeadm 20 之前的版本使用本命令 kubeadm alpha certs check-expiration ,验证集群证书是否更新成功。
前几天写过一篇k8s加入TLS安全访问,其中说到用cfssl之类的工具手动生成TLS证书,这样就可以轻松搞定站点的https访问了。 理想是很美好,但实际操作时却很痛苦,主要有以下几点缺陷: 如果k8s集群上部署的应用较多,要为每个应用的不同域名生成https证书,操作太麻烦。 上述这些手动操作没有跟k8s的deployment描述文件放在一起记录下来,很容易遗忘。 证书过期后,又得手动执行命令重新生成证书。 这样就迫切需要一个证书管理工具来完成以上需求。 正好这几天浏览网站发现了cert-manager,一个k8s原生的证书管理控制器。 一旦在k8s中定义了上述两类资源,部署的cert-manager则会根据Issuer和Certificate生成TLS证书,并将证书保存进k8s的Secret资源中,然后在Ingress资源中就可以引用到这些生成的
role: alert-rules spec: groups: - name: check_ssl_validity rules: - alert: "K8S集群证书在 集群的证书还有{{ printf "%.1f" $value }}天就过期了,请尽快更新证书' summary: "K8S集群证书证书过期警告" - name: ssl_connect_status rules: - alert: "K8S集群证书可用性异常" expr: ssl_tls_connect_success == 0 for: 1m labels: severity: critical annotations: summary: "K8S集群证书连接异常" description : "K8S集群 {{ $labels.instance }} 证书连接异常" 如下展示规则正常,在异常的时候就可以接收到告警了。
在 K8s 中,kube-apiserver 使用 etcd 对 REST object 资源进行持久化存储,本文介绍如何配置生成自签 https 证书,搭建 etcd 集群给 apiserver 使用 创建 ca 证书 3. 配置 ca 证书策略 4. 配置 etcd 请求 csr 5. 生成 etcd 证书 6. 创建 etcd cluster yaml 文件:https://github.com/k8s-club/etcd-operator 7. 查看 DNS 解析 dnsutils 安装:https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/ 8. 坑点记录 13.1 证书 hosts 不对 解决:重新配置正确的 hosts 域名 13.2 证书 hosts 配置坑点 13.3 dns 设置参考 推荐设置 *.xxx.ns.svc,这样扩容后也不需要重签证书
1、SSL 证书过期问题 如上两个问题是近期社群讨论比较多的问题,涉及8.X、7.X等版本。 在 Elasticsearch 集群中,使用SSL证书对数据传输进行加密是一种常见的安全措施。 但,随着时间的推移,这些SSL证书会到期,需要进行更换以保持集群的安全性。 本文将详细介绍如何为Elasticsearch 8.X集群更换自创建的SSL证书,确保数据传输的安全性不受影响。 "path": "certs/http.p12", "format": "PKCS12", "alias": "http", "subject_dn": "CN=VM-8- 2-centos", "serial_number": "e8da1c214dc077f34d7d13f79cb4e1b9201cd78f", "has_private_key": true 8、未来注意事项 定期检查证书有效期: 建议将证书有效期检查纳入日常维护任务,以避免证书意外过期。 监控和告警: 通过监控工具跟踪SSL证书的有效期,并在证书即将过期时发出告警,确保足够的响应时间。