Harbor自签名证书以https方式访问UI界面
说明
前文Centos7搭建Harbor私有仓库(一)中成功搭建了Harbor,但,是以http方式搭建的,这里我们修改为https方式及配置Docker以http方式访问私有仓库
生成自签名证书
这里我们使用https://github.com/Fishdrowned/ssl提供的shell脚本生成ssl证书,在命令行中输入以下命名:
git clone https://github.com/Fishdrowned/ssl.git #将项目下载到本地
项目的目录结构如下:
. ├── LICENSE ├── README.md ├── ca.cnf ├── docs │ ├── chrome-certs-details.png │ ├── chrome-certs-ok.png │ ├── chrome-settings-certs-imported.png │ ├── chrome-settings-certs.png │ ├── chrome-trust.md │ └── output.png ├── flush.sh ├── gen.cert.sh └── gen.root.sh
如果需要修改CA、证书相关信息,可以编辑ca.cnf
和gen.cert.sh
替换对应的内容。接下来,输入以下命令生成ssl证书,
./gen.cert.sh registry.anxminise.cc #生成registry.anxminise.cc域名的证书
目录中,会生成一个out
目录,里面的registry.anxminise.cc
目录存放了生成的证书,内容如下:
. ├── 20181011-0710 │ ├── registry.anxminise.cc.bundle.crt │ ├── registry.anxminise.cc.crt │ └── registry.anxminise.cc.csr.pem ├── registry.anxminise.cc.bundle.crt -> ./20181011-0710/registry.anxminise.cc.bundle.crt ├── registry.anxminise.cc.crt -> ./20181011-0710/registry.anxminise.cc.crt ├── registry.anxminise.cc.key.pem -> ../cert.key.pem └── root.crt -> ../root.crt
其中,registry.anxminise.cc.crt
是我们需要的证书,registry.anxminise.cc.key.pem
是秘钥存储文件,将这两个文件上传到Harbor服务器,这里是192.168.1.112
服务器
配置Harbor的https证书
Harbor服务器上执行以下命令
mkdir -p /data/cert创建证书存放目录 mv registry.anxminise.cc.crt /data/cert/server.crt #将证书放到Harbor配置目录下 mv registry.anxminise.cc.key.pem /data/cert/server.key #将秘钥放到Harbor配置目录下 ll /data/cert #查看目录内容
配置Harbor以https启动
cd /opt/harbor #进入到harbor目录
vim harbor.cfg #编辑harbor的配置文件
编辑以下内容:
hostname = registry.anxminise.cc #配置harbor服务器的域名
ui_url_protocol = https #配置https方式启动
重新配置启动Harbor
./prepare #重新配置Harbor
./install.sh #重新执行Harbor安装,注:此处可能有更好的方式重启
编辑hosts文件以域名方式访问
cat /etc/hosts 192.168.1.112 registry.anxminise.cc
Docker以http访问Harbor私有仓库
说明
前文Centos7搭建Harbor私有仓库(一)我们成功搭建Harbor,本篇我们主要配置Docker以http方式访问私有仓库
Docker配置
Mac系统
配置Docker
Mac系统中配置Docker的Preferences -> Daemon
,Insecure registies
中添加192.168.1.112
,即:Harbor私服的ip地址,如下:
登录私有仓库进行验证
docker login 192.168.1.112
Linux系统
3.1.1 配置Docker
在/etc/docker
新建daemon.json
文件:
mkdir -p /etc/docker #新建docker目录
vim /etc/docker/daemon.json #新建daemon.json文件
编辑内容如下:
{ "insecure-registries":["192.168.1.112"] }
重启docker
systemctl restart docker
3.1.2 登录私有仓库进行验证
docker login 192.168.1.112
Docker以https访问Harbor私有仓库
说明
- 前文Centos7搭建Harbor私有仓库(二)中,我们以https方式搭建了Harbor,本篇我们主要配置Docker以https方式访问Harbor私有仓库
2 Docker配置
2.1 Mac系统
2.1.1 配置Docker
Mac系统中只需配置Proferences -> Proxies
使用System Proxy
即可,如下:
2.1.2 登录私服验证
docker login registry.anxminise.cc #登录私服
2.2 Windows系统
待补充
2.3 Linux系统
2.3.1 配置registry.anxminise.cc域名
编辑/etc/hosts
:
vim /etc/hosts
文件最后部分,加入如下:
192.168.1.112 registry.anxminise.cc
2.3.2 配置Docker
在/etc/docker/certs.d
目录下新建registry.anxminise.cc
目录,
mkdir -p /etc/docker/certs.d/registry.anxminise.cc
将https://github.com/Fishdrowned/ssl自签名生成的根证书,即out
目录下的root.crt
证书放到registry.anxminise.cc
目录中,如下:
重启docker:
systemctl restart docker
登录registry.anxminise.cc
私服仓库:
docker login registry.anxminise.cc