Nexus Registory SSL
配置 Nexus 使用 https
开启 HTTPS
方式大概分为两种,一种为Nexus
服务本身开启代理,另外一种使用 Nginx
进行反向代理实现 HTTPS
, 由于我使用的方式是使用 Docker
进行的Nexus
的配置, 故使用第二种方式 Nginx
反向代理实现各个仓库的 HTTPS
实现过程
-
制作泛域名证书
原因:使用 Nexus 服务作为 Pypi 源、YUM源、Docker 版本库,所以需要每个源的域名不相同
-
自动生成泛域名自签证书
详细自动生成过程查看:自动生成泛域名证书
-
配置
Nginx
对Nexus
进行方向代理本次Nginx 同样使用 Docker 方式实现
-
创建
Nginx Docker
数据卷docker volume create --driver local --opt type=none --opt device=$(pwd) --opt o=bind nexus-data
-
重新制作
Nginx
镜像FROM nginx:stable-alpine VOLUME /data/nginx COPY nginx.conf /etc/nginx/nginx.conf COPY upstream.conf /etc/nginx/conf.d/upstream.conf COPY ngiinx.nexus.conf /etc/nginx/conf.d/nginx.nexus.conf
具体Nginx 配置详见:配置连接
-
生成镜像
docker build -t nexus3/nginx:<tag> .
-
-
或者直接配置
docker-compose
启动 nexus 与 nginx# cat docker-compose.yml version: "3" services: nginx: image: nexus/nginx:latest build: context: ./nginx ports: - "80:80" - "443:443" container_name: nginx-server volumes: - nginx-data:/data/nginx links: - nexus nexus: image: sonatype/nexus3:latest volumes: - nexus-data:/nexus-data container_name: nexus-server volumes: nexus-data: external: true nginx-data: external: true
-
启动及验证
# 在 docker-compose.yml所在目录 $ docker-compose up -d $ docker ps f12650d90115 nexus3/nginx:1.14.2 "nginx -g 'daemon of…" 4 hours ago Up 4 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx-server 9048ec5e23cd sonatype/nexus3:latest "sh -c ${SONATYPE_DI…" 4 hours ago Up 4 hours 8081/tcp nexus-server
-
web 访问与客户端配置验证
-
各仓库开启 https 验证
- YUM
注意:
-
配置yum 使用 https 时需要配置
-
更改 yum 源文件 *.repo 链接为 https://<your_domainname>
sslverify=1 # 是否开启证书校验,本文配置为0即可因为是自签发的证书 # 当开启证书校验需要指定证书位置 sslclientcert=/var/lib/yum/client.cert sslclientkey=/var/lib/yum/client.key
-
Docker
$ cat /etc/docker/daemon.json { "registry-mirrors": ["https://idocker.registory.com"], "insecure-registries": ["https://idocker.registory.com"], "disable-legacy-registry": true } $ docker pull
-
Pypi
pip install ansible # 输出 Looking in indexes: https://ipypi.registory.com/repository/pypi-group/simple Collecting ansible
- YUM