linux cpu占用率如何看
283
2022-09-07
Harbor安全:cfssl工具为Harbor颁发https证书
环境及注意事项
本文以离线安装方式安装2.3.5版本的Harbor,操作系统为CentOS 7.6;安装目录则为/app/harbor/
注意事项:为便于后期Harbor的维护,建议将相关的证书放到Harbor的安装目录的ssl子目录下,在备份Harbor数据的时候一起进行备份。
创建证书存放目录 $ mkdir /app/harbor/ssl
一、cfssl简介
官网: 项目地址:配置文件; ca-csr.json:证书请求文件; xxx-ca.csr:应用证书签名请求文件; xxx-ca.pem:应用服务公钥; xxx-key.pem:应用服务私钥;
二、安装cfssl证书管理工具
下载cfssl二进制文件
在线安装,离线安装到官网下载安装包即可。下载二进制可执行文件并放入到/usr/local/bin/下
$ wget -c -O /usr/local/bin/cfssl $ wget -c -O /usr/local/bin/cfssljson $ wget -c -O /usr/local/bin/cfssl-certinfo
下载时默认没有可执行权限,所以得给这几个工具执行权限:
$ chmod +x /usr/local/bin/cfssl*
三、生成证书颁发机构证书(CA)
自建CA证书颁发机构,使用刚才安装好的cfssl工具为harbor制作颁发证书。
3.1 生成并修改CA默认配置文件
$ cfssl print-defaults config > /app/harbor/ssl/ca-config.json #生成默认配置文件
$ cat <
参数解析: \default.expiry:默认证书有效期(单位:h)\profiles.harbor:为服务使用该配置文件颁发证书的配置模块;\signing:签署,表示该证书可用于签名其它证书;生成的 ca.pem 证书中 CA=TRUE;\key encipherment:密钥加密;\profiles:指定了不同角色的配置信息;可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时使用某个 profile。\server auth:服务器身份验证;表示 client 可以用该 CA 对 server 提供的证书进行验证;\client auth:客户端身份验证;表示 server 可以用该 CA 对 client 提供的证书进行验证;
3.2 生成并修改默认csr请求文件
$ cfssl print-defaults csr > /app/harbor/ssl/ca-csr.json
$ cat <
参数解析: \hosts:包含的授权范围,不在此范围的的节点或者服务使用此证书就会报证书不匹配错误,证书如果不包含可能会出现无法连接的情况(此处是CA机构的可为空);\Key: 指定使用的加密算法,一般使用rsa非对称加密算法(algo:rsa;size:2048)\CN:Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名 (User Name);浏览器使用该字段验证网站是否合法;\CN:域名,也就是你现在使用什么域名就写什么域名;\O:Organization,从证书中提取该字段作为请求用户所属的组 (Group);
3.3 初始化CA证书
$ cfssl gencert -initca /app/harbor/ssl/ca-csr.json | cfssljson -bare /app/harbor/ssl/ca 2022/08/05 17:45:13 [INFO] generating a new CA key and certificate from CSR 2022/08/05 17:45:13 [INFO] generate received request 2022/08/05 17:45:13 [INFO] received CSR 2022/08/05 17:45:13 [INFO] generating key: rsa-2048 2022/08/05 17:45:13 [INFO] encoded CSR 2022/08/05 17:45:13 [INFO] signed certificate with serial number 569300079190788296339255431042064535929535986620 $ ls /app/harbor/ssl/ ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem
可以看到,当前目录下新生成了ca.csr、ca-key.pem、ca.pem这3个文件。ca-key.pem、ca.pem这两个是CA相关的证书,通过这个CA来向Harbor颁发证书。
四、CA给Harbor颁发证书
Harbor使用类似于申请表的一个请求文件向CA机构申请证书,CA机构则根据配置文件(证书策略)和请求文件(申请表)向Harbor颁发证书。
4.1 创建并修改Harbor证书请求文件
使用以下命令创建一个默认的请求文件,但默认的部分参数需要修改。
$ cfssl print-defaults csr > /app/harbor/ssl/harbor-csr.json
$ cat <
4.2 CA向Harbor颁发证书
CA使用请求文件根据配置向Harbor颁发证书。
$ cfssl gencert -ca=/app/harbor/ssl/ca.pem \ -ca-key=/app/harbor/ssl/ca-key.pem \ -config=/app/harbor/ssl/ca-config.json \ -profile=harbor harbor-csr.json | cfssljson -bare /app/harbor/ssl/harbor $ ls /app/harbor/ssl/ ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem harbor.csr harbor-csr.json harbor-key.pem harbor.pem $ cp harbor.pem harbor-key.pem /app/harbor/ssl/
参数解析: \-config:指定CA证书机构的配置文件;\-profile:指定使用CA配置文件中的哪个模块(此处harbor对应配置文件中的harbor);\harbor.pem:harbor服务的数字证书;\harbor-key.pem:harbor服务的私钥;
五、Harbor配置文件中指定证书
5.1 修改配置文件
修改Habor.yml配置文件,在对应参数指定使用的证书文件。
$ vim /app/harbor/harbor.yml hostname: 192.168.2.22 #本机IP或域名 http: port: 80 #启用https安全访问 port: 443 #Https安全端口(默认443) certificate: /app/harbor/ssl/harbor.pem #Harbor的证书 private_key: /app/harbor/ssl/harbor-key.pem #Harbor的证书私钥
注意事项:\如果是在Harbor安装完成后才在配置文件中修改这几行参数,在修改参数后,需要先停止harbor,再执行./prepare使配置生效,最后执行./install.sh。
5.2 浏览器登录Harbor UI
在浏览器地址栏输入:UI。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~