linux安装docker crt证书,搭建Docker镜像仓库Harbor,并配置https证书

准备环境

软件版本信息

操作系统:

操作系统版本不一定要最新的,但是操作系统Linux内核版本必须在3.10以上。

安装fedora的时候需要选择“容器管理”才会安装docker相关服务及命令。

2684a29be1f3b78f9f40b9bcff4d30ea.png

安装完成之后需要使用如下命令启动docker服务:

然后可以使用 docker version 命令查看docker的版本信息,Fedora默认安装的是1.13版本。

安装系统的时候,docker-compose是默认没有的,需要单独安装,安装方法参考下一小节。尽量安装最新发布的版本。

docker-compose:

harbor : v1.4.0

安装docker-compose

docker为Fedora Server自带,无需安装,没有docker-compose,需要安装。docker-compose的github地址为:https://github.com/docker/compose

点击到“release”标签页查看发布的版本,直接使用github上的命令进行安装:

关闭防火墙与SELinux【非常重要】

下载并安装harbor

下载harbor离线安装包

配置harbor.cfg

由于启用了https,因此配置了https的证书,主要修改了如下配置:

需要修改的内容如下:

1. hostname:填写域名信息,慎重填写,以后将要使用的进项将以此为前缀,比如域名是wangxianfeng.cn,以后的镜像名称就是类似如下:wangxianfeng.cn/test/webserver:1.0

2. customize_crt = off 不知道干嘛的,关了就得了

3. ssl_cert和ssl_cert_key这2个配置的是生成的ssl相关的内容,根据后缀名配置即可。

4. secretkey_path【非常重要】此路径需要和下面docker-compose.yml文件中的相关配置保持一致,比如此处配置的是:/home/wangxianfeng/harbor/data,然后会在此目录下生成1个secretkey的文件,保存着adminserver和ui要使用的key,具体做什么的我也不知道。

5. harbor_admin_password登录web页面的时候admin用户的密码

6. db_password数据库的密码,为了安全起见,还是要改下。

修改docker-compose.yml配置

harbor使用docker-compose进行组合在一起的,相关的配置全部在此进行配置。现在把文件全部内容贴在这里,需要修改的内容我注释一下。

生成https CA证书

1.制作CA证书:

ca.key CA私钥:

制作解密后的CA私钥(一般无此必要):

ca.crt CA根证书(公钥):

2.制作生成网站的证书并用CA签名认证

在这里,假设网站域名为harbor.wangxianfeng.cn

生成harbor.wangxianfeng.cn证书私钥:

制作解密后的harbor.wangxianfeng.cn证书私钥:

生成签名请求:

在common name中填入网站域名,如harbor.wangxianfeng.cn即可生成改站点的证书,同时也可以使用泛域名如*.wangxianfeng.cn来生成所有二级域名可用的网站证书。

用CA进行签名:

其中,policy参数允许签名的CA和网站证书可以有不同的国家、地名等信息,days参数则是签名时限。

如果在执行签名命令时,出现“I am unable to access the ../../CA/newcerts directory”

修改/etc/pki/tls/openssl.cnf中“dir = ./CA”

然后:

再重新执行签名命令。

最后,把ca.crt的内容粘贴到harbor.wangxianfeng.cn.crt后面。这个比较重要!因为不这样做,可能会有某些浏览器不支持。

好了,现在https需要到的网站私钥harbor.wangxianfeng.cn.key和网站证书harbor.wangxianfeng.cn.crt都准备完毕。

执行install.sh进行安装

如果一切配置好,在当前目录下执行如下命令,即可正常启动harbor

此命令会准备好所有的镜像,然后启动harbor相关的所有容器,启动之后的容器有如下几个:

此时便可以通过https://domainname或者https://ip的方式进行访问。

2f67c6cf146499ba526d643d2e642d99.png

使用harbor

新建项目&管理项目

点击左侧的“项目”菜单,点击“新建项目”按钮,输入项目名称,设置访问级别,公开表示不用认证也可以读取项目里的镜像,非公开表示只有项目的成员才能读取该项目里的镜像。为了安全起见,还是设置为非公开。这里创建了一个xf的项目:

3adc3923d914750e95a9cbdc583a5a6c.png

刚刚新建完成的项目没有任何镜像,因此镜像仓库显示为空。创建项目使用的是admin用户,但是下载镜像不应该使用admin用户,因此可以新建一个开发人员的用户,把新建用户加入到项目成员当中去。

df0f8288e6ef91dc33906271f96a1112.png

添加到项目成员当中,角色为开发人员:

8ee93eaf9038e4feccb31839b22dae7c.png

这样就可以用新建的用户进行镜像的push和pull操作了。

镜像的push与pull操作

创建镜像仓库就是为了存储镜像的,因此下面的步骤就去存储和下载镜像,首先下载一个测试的镜像nginx

然后标记新的镜像(版本设置为1.0):

然后使用docker iamges命令查看新的镜像是否已经生成

这时先不要着急push,因为还有一个重要的步骤需要完成

此时打开网页访问harbor.wangxianfeng.cn时就会提示ssl不安全的连接,说明ssl添加成功;但是在命令行登陆docker仓库时不成功的。[用Ip登陆则成功]

错误信息类似如下:

解决方法:停止服务:

创建对应目录:

启动服务:

再次登陆,成功了:

然后就可以push镜像到仓库了:

可以在harbor前台查看刚刚push的镜像:

d53969f8ea7feecf090b235d1976bdc7.png

1877880865c3fd095c33b994c7d35b2e.png

测试一下新上传的镜像

首先删除当前机器上所有nginx镜像

从新的仓库pull镜像下来:

然后运行一个容器:

把nginx的80端口映射到本地的8098端口,然后直接访问此机器的8098端口,看看是否能够访问:

efd40eccce4107b17c5905695ad4af07.png

完美!

再测试一下非项目成员能够读取镜像

新建用户xianfeng,不加入到xf项目成员当中

然后命令行操作如下:

Perfect!The end!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值