其实。。。ssl 证书没啥的,就是加密通讯用的,真正让大家头疼的不是 ssl 证书,而是跟 k8s 放在一块,结合 k8s 产生各种证书绕晕了。
接触 Kubernetes 以来,我经常看到 Kubernetes 在不同的地方使用了证书(Certificate),在 Kubernetes 安装和组件启动参数中也需要配置大量证书相关的参数。但是 Kubernetes 的文档在解释这些证书的工作机制方面做得并不是太好。经过大量的相关阅读和分析工作后,我基本弄清楚了 Kubernetes 中证书的使用方式。在本文中,我将试图以一种比官方文档更容易理解的方式来说明 Kubernetes 中证书相关的工作机制,如果你也存在这方面的疑惑,希望这篇文章对你有所帮助。
本文试图以一种比官方文档更容易理解的方式来说明 Kubernetes 和证书(Certificate)相关的工作机制,如果你也存在这方面的疑惑,希望这篇文章对你有所帮助。
官方解释:“商户证书”是指由商户申请的,包含商户的商户号、公司名称、公钥信息的证书。 新接入商户请参考什么是API证书?如何获取API证书?。 我的解释:服务商在微信支付->账户中心->API安全->API证书中申请的证书,就是商户证书。其实也是在微信支付平台申请的,但是不叫微信平台证书(大概因为这个证书是由商户保管把,而微信只是提供了一个入口供我们去申请下载)我真的是很想教写文档的好好做人。
2018年3月8日,微信支付商户平台发布公告:微信支付HTTPS服务器计划于2018年5月29日更换服务器证书。这则公告对使用沃通SSL证书的商户没有任何影响,不需要更换SSL证书。
在上一篇文章一文带你彻底厘清 Kubernetes 中的证书工作机制中,我们介绍了 Kubernetes 中证书的工作机制。在这篇文章中,我们继续探讨 Istio 是如何使用证书来实现网格中服务的身份认证和安全通信的。
作者赵化冰,腾讯云高级工程师,Istio Member,ServiceMesher管理委员,热衷于开源、网络和云计算。目前主要从事服务网格的开源和研发工作。 目录 Istio 安全架构 控制面证书签发流程 为什么要通过 Pilot-agent 中转? 控制面身份认证 SDS 工作原理 网格边车证书配置 Gateway 证书配置 数据面使用的所有证书 小结 参考文档 在这篇文章中,我们将探讨 Istio 是如何使用证书来实现网格中服务的身份认证和安全通信的。 本文是对 Istio 认证工作机制的深度分
Kubernetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权、准入控制机制及保护敏感信息的Secret机制等。集群的安全性主要有如下目标:
Let's Encrypt是一个证书颁发机构(CA),它为传输层安全性(TLS)加密供免费证书。它提供了一个名为Certbot的软件客户端,它简化了证书创建,验证,签名,安装和续订的过程。
Ø MCHID:指的是微信支付商户号,可以登录微信支付商户后台(pay.weixin.qq.com),在【账户设置->账户信息】中查看
首先是觉得在 Service 文件里面引用环境变量的方式似乎没有什么特别的好处。因此丢弃了环境变量文件,直接把参数写入了 Service 文件。
猫猫的这台服务器用的是frp内网穿透提供HTTPS服务的,证书是安装在frp客户端这边,IIS或VFP调试服务器提供的是本地HTTP服务,通过frp秒变https。
在 Kube-apiserver 中提供了很多认证方式,其中最常用的就是 TLS 认证,当然也有 BootstrapToken,BasicAuth 认证等,只要有一个认证通过,那么 Kube-apiserver 即认为认证通过。下面就主要讲解 TLS 认证。
Let's Encrypt 是一个证书颁发机构(CA),它为传输层安全性(TLS)加密提供免费证书。它提供了一个名为Certbot的软件客户端,它简化了证书创建,验证,签名,安装和续订的过程。
所有的系统都存在访问和使用其的用户,Kubernetes也一样,在Kubernetes集群中有存在两类用户:
Docker是一种容器化技术,可通过容器化技术提供的API进行访问和管理。您可以通过配置Docker API来开启对Docker API的访问,并使用双向证书验证确保通信的安全性。以下是配置Docker API以开启访问和双向证书验证的步骤:
在一个安全的内网环境中, Kubernetes的各个组件与Master之间可以通过apiserver的非安全端口http://apiserver:8080进行访问。但如果apiserver需要对外提供服务,或者集群中的某些容器也需要访问apiserver以获取集群中的某些信息,则更安全的做法是启用HTTPS安全机制。Kubernetes提供了基于CA签名的双向数字证书认证方式和简单的基于HTTP BASE或TOKEN的认证方式,其中CA证书方式的安全性最高。本节先介绍以CA证书的方式配置Kubernetes集群,要求Master上的kube-apiserver.kube-controller-manager. kube-scheduler进程及各Node上的kubelet, kube-proxy进程进行CA签名双向数字证书安全设置
在生产环境中,必须保障集群用户的角色以及权限问题,不能给所有用户都赋予管理员权限。
利用 Gateway API 作为你可信赖的盾牌,保护你的 Kubernetes 王国。
在Java 中的微信支付(1):API V3 版本签名详解一文中胖哥讲解了微信支付 V3 版本 API 的签名,当我方(你自己的服务器)请求微信支付服务器时需要根据我方的API 证书对参数进行加签,微信服务器会根据我方签名验签以确定请求来自我方服务器。那么同样的道理我方的服务器也要对微信支付服务器的响应进行鉴别来确定响应真的来自微信支付服务器,这就是验签。验签使用的是【微信支付平台证书公钥】,不是商户 API 证书。使用商户 API 证书是验证不过的。今天就来分享一下如何获得微信平台公钥和动态刷新微信平台公钥。
我一直使用的都是Let's Encrypt免费的证书,昨天看到群里的大佬发出了一个测试的证书申请的脚本命令,我才接触到acme.sh,于是我查阅了很多大佬的博文了解这个脚本的使用方法。acme.sh功能非常强大,自动安装证书,支持广泛的环境和场景的部署。
(https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/bootstrap-tokens/)
Kubernetes需要PKI证书才能通过TLS进行身份验证。如果使用kubeadm安装Kubernetes,则会自动生成集群所需的证书。还可以生成自己的证书,例如,通过不将私钥存储在API服务器上来保持私钥更安全。 当然,我们目前是在手动安装嘛。
用户在访问Kubernetes集群的API server时,访问请求需要经过身份验证、授权和准入控制这三个阶段的检查,才能真正到达API服务,如下图所示:
在 node 节点上,kubelet 是需要对外提供服务的。在 k8s 中,调用 kubelet 服务的也只有 kube-apiserver。
这是一个系列文章,将会通过七篇内容和大家一起聊聊 Kubernetes 中的证书管理。
k8s 除了需要 ssl 证书认证之外,还创建了一套鉴权机制。常用的 RBAC 鉴权通过在 ssl 证书中指定 CN 用户名以及 O
不用代理,SRS就可以提供HTTPS API。不用代理,SRS就可以调用HTTPS Callback。不用代理,SRS就可以提供HTTPS FLV。不用代理,SRS就可以支持WebRTC推流(需要HTTPS API)。不用代理,SRS就可以支持HTTPS HLS。 HTTPS FLV和HLS SRS4之前只提供HTTP FLV和HLS,可以使用go-oryx作为HTTPS代理,将HTTP FLV和HLS转成HTTPS FLV和HLS提供服务。 SRS4只需要配置一下,就可以支持HTTPS FLV和HLS了
Kubernetes 提供了基于 CA 签名的双向数字证书的认证方式,一般对于一个安全性要求比较高的集群,一般会选择双向数字证书的认证方式,而不采用 HTTP Base 或 Token 的认证方式的,所以对于搭建集群的安全设置,这种认证方式是需要掌握的。 api-server 作为 Master 节点的进程,像 Kubernetes 的其他组件都需要与之通信,所以这些证书的前提都是先在 Master 为 api-server 生成一个由 CA 证书签名的数字证书 server.crt,留意图一的过程。ca.key 是 CA 私钥,ca.crt 是 CA 证书,通过他们可以生成 api-server 的服务私钥。 然后配置一个 master_ssl.conf(此处不展开了,里面的内容主要是 Master 服务器的 hostname,IP 等信息),然后配合上述部署生成的 server.key 生成 server.csr。 最后通过 server.csr 和 ca.crt 和 ca.key 共同签发服务器的证书 server.crt。
Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介,也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的,Kubernetes 使用了认证(Authentication)、鉴权(Authorization)、准入控制(AdmissionControl)三步来保证API Server的安全 。
面向服务的体系结构(SOA)引入了一种设计范式,该技术讨论了高度分离的服务部署,其中服务间通过标准化的消息格式在网络上通信,而不关心服务的实现技术和实现方式。每个服务都有一个明确的,公开的服务描述或服务接口。实际上,消息格式是通过SOAP进行标准化的,SOAP是2000年初由W3C引入的标准,它也基于XML--服务描述通过WSDL标准化,另一个W3C标准和服务发现通过UDDI标准化--另一个W3C标准。所有这些都是基于SOAP的Web服务的基础,进一步说,Web服务成为SOA的代名词 - 并导致其失去作为一种架构模式的本义。SOA的基本原则开始淡化。WS- *栈(WS-Security,WS-Policy,WS-Security Policy,WS-Trust,WS-Federation,WS-Secure Conversation,WS-Reliable Messaging,WS-Atomic Transactions,WS-BPEL等)通过OASIS,进一步使SOA足够复杂,以至于普通开发人员会发现很难消化。
联邦信任域是SPIFFE和SPIRE最高需求和活跃开发的功能之一。在这篇博文中,我将概述我们当前的计划以及实施它的挑战。
要深入了解证书的作用,首先需要了解一些原理和具备一些基本知识,比如什么是非对称加密,什么是公钥,私钥,数字签名是啥等。先从RSA算法说起。
roc,腾讯高级工程师,Kubernetes Contributor,热爱开源,专注云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航。 概述 随着 HTTPS 不断普及,越来越多的网站都在从 HTTP 升级到 HTTPS,使用 HTTPS 就需要向权威机构申请证书,需要付出一定的成本,如果需求数量多,也是一笔不小的开支。cert-manager 是 Kubernetes 上的全能证书管理工具,如果对安全级别和证书功能要求不高,可以利用
目前使用量最大的免费 SSL 证书就是 Let’s Encrypt 了,在 2018 年 3 月份 Let’s Encrypt 官方发布上线泛域名免费 SSL 证书,现在终于可以申请了。目前通过 DNS 方式获取比较快,国内可以通过腾讯云的 DNSPod 域名 API 和阿里云域名 API 自动颁发 Let’s Encrypt 泛域名 SSL 证书。本文记录腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书的过程。
每个service对应一个cluster IP,cluster IP对应的服务网段最初是在配置kube-apiserver、kube-controller-manager和kube-proxy的systemd unit时指定的,如kube-apiserver参数为--service-cluster-ip-range。
本篇文章聊聊如何通过 Docker 容器使用 Traefik,进行稳定的 Traefik 服务的部署。
这年头没有https都没法开发软件了,web标准上近几年的api们清一色地要求https,否则就罢工!它们包括但不限于:
最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑。目前微信支付的 API 已经发展到V3版本,采用了流行的 Restful 风格。
可以使用kubectl、客户端库方式对REST API的访问,Kubernetes的普通账户和Service帐户都可以实现授权访问API。API的请求会经过多个阶段的访问控制才会被接受处理,其中包含认证、授权以及准入控制(Admission Control)等。如下图所示:
Traefik实现自动申请HTTPS证书要使用Let’s Encrypt自动生成证书,需要使用ACME。需要在静态配置中定义 “证书解析器”,Traefik负责从ACME服务器中检索证书。
如上图,这是一个典型的 Kubernetes 集群组件图,通过上图我们可以看到 Kubernetes 各组件都是以 APIServer 作为网关通信的。为了安全,APIServer 一般通过 TLS 认证对外暴露,集群组件若要访问 APIServer 则需要相应的 TLS 证书。
域控渗透最常见的域持久性技术之一是黄金票据攻击,它涉及使用“ krbtgt ”的 NTLM 哈希创建 kerberos 票证。但是在部署了 Active Directory 认证服务 (AD CS) 的服务器的域中,可能会在发生入侵时被滥用以实现域持久性。通过窃取 CA 证书的私钥,红队可以伪造和签署证书以用于身份验证。在部署 Active Directory 证书服务 (AD CS) 期间,域中默认启用基于证书的身份验证。因此,需要将这些系统视为第 0 层资产并得到适当保护。
有线加密可保护移动中的数据,而传输层安全性(TLS)是有线加密中使用最广泛的安全协议。TLS通过对端点之间传输的数据包进行加密,在通过网络进行通信的应用程序之间提供身份验证、隐私和数据完整性。用户通过浏览器或命令行工具与Hadoop集群进行交互,而应用程序则使用REST API或Thrift。
目前使用量最大的免费 SSL 证书就是 Let’s Encrypt 了,在 2018 年 3 月份 Let’s Encrypt 官方发布上线泛域名免费 SSL 证书,现在终于可以申请了。目前通过 DNS 方式获取比较快,国内可以通过腾讯云的 DNSPod 域名 API 和阿里云域名 API 自动颁发 Let’s Encrypt 泛域名 SSL 证书。本文记录腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书的过程。 要使用腾讯云 API 申请 Let’s Encryp
随着微软公有云Azure的落地,现在越来越多的用户把应用发布到了Azure当中,但苦于Azure门户中的监控能力较弱,无法满足企业一些较为核心的监控需求。而SCOM作为一个优秀的监控服务器,目前针对SCOM 2012 sp1和R2发布了System Center Management Pack for Windows Azure管理包,通过API来远程收集Azure特定的资源,包括有Cloud Services、Azure Storage、虚拟机。
最近在使用RC的时候碰到了一个问题:创建RC后无法自动创建Pod 网上搜索,得到出现该问题的原因是:身份认证。 解决的办法有两种:(1)跳过认证(2)解决认证 跳过认证 跳过认证的解决办法是
在购买域名的时候我相信很多人都遇到了对于证书的问题,之前我也是使用阿里云的免费一年的证书,那时候感觉还好,一年更换一次,但是近期阿里云对于证书的过期时间直接砍到了三个月!让我难以接受,所以我在想吧他直接集成到我的FastGateway中,让他自动申请,自动续期!下面我将教大家如何使用Fast Gateway自动申请证书!
李全江(jokey),腾讯云工程师,热衷于云原生领域。目前主要负责腾讯云 TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践。 原理概述 动态准入控制器 Webhook 在访问鉴权过程中可以更改请求对象或完全拒绝该请求,其调用 Webhook 服务的方式使其独立于集群组件,具有非常大的灵活性,可以方便的做很多自定义准入控制,下图为动态准入控制在 API 请求调用链的位置(来源于 Kubernetes 官网[1]): 从上图可以看出,动态准入控制过程分为两个阶段:首先执行 Mutat
银联支付 之前做过一次银联支付的配置工作,然而第二次配置,虽然有点印象,但最终还是翻查了半天资料和代码,才完成了配置。这里对银联支付所需做一个简单的整理说明,以便后期查阅,同时分享给大家。 至于如何申请账号,那是公司层面的操作,这里我不清楚,也不做相关的介绍了,我只清楚拿到账号之后的操作。 申请成功以后你会拿到以下四个文件,按照文档流程生成相应的证书即可: License.doc 附件1:生产证书下载、导出及上传流程.docx 附件2:自助化入网测试平台说明书.doc 附件3:云闪付业务商户入网服务指引.
领取专属 10元无门槛券
手把手带您无忧上云