[toc]
证书
- 生成自己的证书
在线方式
https://csr.chinassl.net/generator-csr.html
本机方式
#首先确保机器上安装了openssl和openssl-devel
yum install -y openssl-devel openssl
# 创建服务器私钥,命令会让你输入一个口令:
openssl genrsa -des3 -out server.key 1024
创建签名请求的证书(CSR):
# openssl req -new -key server.key -out server.csr
- 签发证书
#在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
#最后标记证书使用上述私钥和CSR:
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
- 证书信任
CentOS 7
添加到信任链中,需要重新docker
#转换格式
openssl x509 -inform der -in hub.g.cn.cer -out hub.g.cn.pem
cat hub.g.cn.pem >> /etc/pki/tls/certs/ca-bundle.crt
harbor
- 下载
wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.6.1.tgz
tar -xvf harbor-offline-installer-v1.6.1.tgz
- 配置
harbor.cfg
#改成自己的
hostname = hub.g.cn
ui_url_protocol = https
#off
customize_crt = off
#用自己的
ssl_cert = /data/nginx/conf/certificate/hub/hub.g.cn.crt
ssl_cert_key = /data/nginx/conf/certificate/hub/hub.g.cn.key
- 脚本说明
#加载镜像
install.sh
#根据harbor.cfg初始化配置
prepare
#启动容器
docker-compose up -d
默认用户名密码admin/Harbor12345
- 添加用户,添加项目,添加用户到项目
docker操作
#登陆
docker login -u wyj -p Wyj12345 hub.g.cn
#修改标签
docker tag 25068d1677ff hub.g.cn/gaiay/tomcat:jre7
#push
docker push hub.g.cn/gaiay/tomcat:jre7
#pull
docker pull hub.g.cn/gaiay/tomcat:jre7
nginx 代理
修改 docker-compose.yml 端口映射
180:80
1443:443
server {
server_name hub.g.cn;
listen 443 ssl ;
ssl_certificate /data/nginx/conf/certificate/hub/hub.g.cn.crt;
ssl_certificate_key /data/nginx/conf/certificate/hub/hub.g.cn.key;
ssl_session_timeout 20m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AES:EECDH+CHACHA20;
add_header X-Frame-Options SAMEORIGIN;
location / {
#docker 代理一定要配置 max_body_size
client_max_body_size 1000m;
proxy_pass https://192.168.0.180:1443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_redirect off;
}
}
遇到的坑
用域名用自己证书,因为容器组合起来的,
hostname = hub.g.cn
ui_url_protocol = https
必须是在容器内外都可以访问的,修改映射端口后,如果还使用nginx配置代理,那么harbor.cfg hotname还是用标准端口号就可以了
网友评论