龙空技术网

harbor配置证书并管理helm3的chart

开心感恩 137

前言:

现在朋友们对“windows证书服务器配置”大约比较注意,看官们都需要知道一些“windows证书服务器配置”的相关资讯。那么小编同时在网摘上汇集了一些关于“windows证书服务器配置””的相关内容,希望大家能喜欢,大家快快来了解一下吧!

Helm 是 Kubernetes 应用程序包管理器,起作用类似linux下的yum、macos下的brew,帮助管理 Kubernetes 应用Helm Chart,即使是最复杂的 Kubernetes 应用程序,都可以定义、安装和升级。harbor是镜像仓库,可以帮助构建私有镜像仓库,最新版的harbor也可以作为helm chart的仓库。

一般私有仓库对外提供镜像或helm chart服务基于安全考虑都会采用HTTPS方式进行安全访问,HTTPS的核心部分是数据传输之前的握手,握手过程中确定了数据加密的密码。在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似,是一个支持HTTPS网站的身份证明,SSL证书里面包含了网站的域名,证书有效期,证书的颁发机构以及用于加密传输密码的公钥等信息,由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要先核对当前访问的域名与证书上绑定的域名是否一致,同时还要对证书的颁发机构进行验证,如果验证失败浏览器会给出证书错误的提示。

SSL证书可以向CA机构通过付费的方式申请,也可以自己制作。CA机构颁发的证书价格非常昂贵,而且有效期一般只有一年到三年不等(年数不同,价格也不同),过期之后还要再次交钱申请,因此一般只有企业才会申请证书。但是随着个人网站的增多,目前也有针对个人的SSL证书服务,价格相对便宜一些,国内的话400多块钱就能申请到一个,国外更是有免费的SSL证书可以申请。在申请SSL证书时需要向CA机构提供网站域名,营业执照,以及申请人的身份信息等。

下文介绍的Harbor私有镜像仓库部署https需要先配置一个虚拟的域名,然后通过openssl程序进行证书、私钥的生成,最后借助相应配置实现通过https来解决helm和harbor 交互的目的。

再简要啰嗦一下为什么为什么需要https和证书,https相对于http简单来说就是对通讯过程的数据进行了加密,不是像http那样使用明文通讯,信息很容易泄漏。那么既然需要加密那么就涉及到加密密码和身份验证的问题,需要密码这不难理解,需要身份验证是因为网络通讯过程中,攻击方往往会伪装成真实服务器劫持信息,证书本身就是现实生活中个人或企业持有的证书是一个含义,现实中个人的证书如身份证证明你的身份,由权威机构公安局颁发,CPA证书证明你有注册会计师的能力,由权威考试机构颁发,类似的,网站服务器的证书也需要向一个权威机构申请,由一个权威机构(CA中心)进行颁发,证明这个服务器是靠谱的,可以信任的。

https通信的时候,开始是浏览器先发送消息告知服务器自己能支持的加密算法,服务器收到后选择一种加密算法,并将自己的身份信息以证书形式发回,证书中的一个重要内容是公钥,浏览器收到证书后验证证书的可信度(主流浏览器都内置权威CA颁发证书的验证办法),验证通过后,随机生成一个用于加密通信信息的密码,并使用证书中的公钥加密并发还给服务端,服务端收到信息后先使用私钥对发过来的用公钥加密过的密码进行提取,得到加密通信信息的密码,用该密码再加密一段握手信息,发还给浏览器,浏览器收到后进行解密,并验证hash,成功则握手成功,后续将使用该密码与服务端进行通信。可以看到以上通过非对称加密,服务端和浏览端进行通信加密密码的交换,完成握手,后续通过对称加解密进行通讯信息的交互。整体原理大致如上,下面开始进行部署详细过程:

1、配置域名

harbor使用证书的时候最好使用域名,不要直接使用IP,这里先虚拟一个域名,然后将其添加到/ etc / host中

2、生成ca私钥

openssl genrsa -out ca.key 4096 3、生成ca证书

openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=; -key ca.key -out ca.crt如果指定-newkey自动生成秘钥,那么-nodes选项说明生成的秘钥不需要加密,即不需要输入passphase 4生成服务端key

openssl genrsa -out 4096 5、用服务端生成证书签署请求CSR文件(这个CSR用于发送给CA中心等待签发)

openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=; -key -out 6、新建扩展文件 7、使用根证书、根私钥签署服务器证书

openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in -out 8、生成认证证书 这个crt文件和这个cert文件内容似乎一样

9、更新证书

没有文件夹就创建cp /data/cert/ /usr/local/share/ca-certificates然后执行:update-ca-certificates ./prepare --with-notary --with-chartmuseum --with-trivy重启harbor重启docker

10、helm增加repo

helm repo add --ca-file /data/cert/ca.crt --cert-file /data/cert/ --key-file /data/cert/ --username admin --password Harbor12345 harborrepo 主要要输入用户名,密码,否则会报:is not a valid chart repository or cannot be reached: failed to fetch : 401 Unauthorized的错误。 helm repo update helm repo list 11、helm查找chart

查找一个helm chart,使用如下命令:

helm search repo wordpress 12、helm pull一个chart

pull一个应用:

helm pull bitnami/wordpress --version 15.2.2 13、向harbor仓库push一个chart

向harbor仓库push一个应用helm cm-push --ca-file /data/cert/ca.crt --cert-file /data/cert/ --key-file /data/cert/ --username=admin --password=Harbor12345 ./wordpress-15.2.2.tgz harborrepo

标签: #windows证书服务器配置