ハーバーのドメイン名証明書は 1 年に 1 回変更されます。新しい証明書をアップロードし、/opt/harbor/harbor.yml ファイル内の証明書構成を直接変更して、サービスを再起動します。
cd /opt/ハーバー/
docker-compose down -v
docker-compose up -d
証明書が更新されていないことが判明しました。
docker-comoser.yml ファイルを確認し、nginx 部分を参照し、永続化が完了していることを確認します。
root@harbor harbor]# vim docker-compose.yml
...
syslog-address: "tcp://127.0.0.1:1514"
tag: "redis"
proxy:
image: goharbor/nginx-photon:v2.1.0
container_name: nginx
restart: always
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- NET_BIND_SERVICE
volumes:
- ./common/config/nginx:/etc/nginx:z
- /harbor_data/secret/cert:/etc/cert:z //这里,缺省做了持久化
- /etc/hosts:/etc/hosts:z
- type: bind
source: ./common/config/shared/trust-certificates
target: /harbor_cust_cert
networks:
- harbor
dns_search: .
ports:
- 80:8080
...
したがって、ここで証明書ファイルを更新し、以前のserver.crtとserver.keyを上書きします。
[root@harbor harbor]# cd /harbor_data/secret/cert/
[root@harbor cert]# ll
total 12
-rw-r--r-- 1 root root 5824 Apr 12 16:10 server.crt
-rw-r--r-- 1 root root 1675 Apr 12 15:10 server.key
すべてのサービスを再起動するために docker-compose を使用する必要はなく、ng コンテナーを再起動するだけです。
[root@harbor cert]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e696e371d67 goharbor/harbor-jobservice:v2.1.0 "/harbor/entrypoint.…" 40 minutes ago Up 40 minutes (healthy) harbor-jobservice
ce540caa5355 goharbor/nginx-photon:v2.1.0 "nginx -g 'daemon of…" 40 minutes ago Up 9 minutes (healthy) 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp nginx
c8c71e144c9e goharbor/harbor-core:v2.1.0 "/harbor/entrypoint.…" 40 minutes ago Up 40 minutes (healthy) harbor-core
e5a1c50932f7 goharbor/registry-photon:v2.1.0 "/home/harbor/entryp…" 40 minutes ago Up 40 minutes (healthy) registry
6c06ed2b2b20 goharbor/harbor-registryctl:v2.1.0 "/home/harbor/start.…" 40 minutes ago Up 40 minutes (healthy) registryctl
b68793f7fecb goharbor/redis-photon:v2.1.0 "redis-server /etc/r…" 40 minutes ago Up 40 minutes (healthy) redis
d570d32629da goharbor/harbor-portal:v2.1.0 "nginx -g 'daemon of…" 40 minutes ago Up 40 minutes (healthy) harbor-portal
99b8537023f9 goharbor/harbor-db:v2.1.0 "/docker-entrypoint.…" 40 minutes ago Up 40 minutes (healthy) harbor-db
b2d9a608c46c goharbor/harbor-log:v2.1.0 "/bin/sh -c /usr/loc…" 40 minutes ago Up 40 minutes (healthy) 127.0.0.1:1514->10514/tcp harbor-log
[root@harbor cert]# docker restart ce540caa5355
上記の ce540caa5355 は nginx の Docker コンテナ ID です
再起動が完了したら、証明書の更新が完了したことを確認します。