2.2.7.2. 레지스트리 콘솔 보안
기본적으로 레지스트리 콘솔 배포의 단계에 따라 레지스트리 콘솔에서 자체 서명 TLS 인증서를 생성합니다. 자세한 내용은 레지스트리 콘솔 문제 해결을 참조하십시오.
다음 단계를 사용하여 조직의 서명 인증서를 보안 볼륨으로 추가합니다. 이는 인증서를 oc
클라이언트 호스트에서 사용할 수 있다고 가정합니다.
인증서와 키가 포함된 .cert 파일을 만듭니다. 다음과 같이 파일을 포맷합니다.
- 서버 인증서 및 중간 인증 기관을 위한 하나 이상의 BEGIN CERTIFICATE 블록
BEGIN PRIVATE KEY 또는 키와 유사한 블록입니다. 키를 암호화할 수 없습니다
예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 레지스트리에는 다음 SAN(주체 대체 이름) 목록이 포함되어야 합니다.
두 개의 서비스 호스트 이름.
예를 들면 다음과 같습니다.
docker-registry.default.svc.cluster.local docker-registry.default.svc
docker-registry.default.svc.cluster.local docker-registry.default.svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 IP 주소.
예를 들면 다음과 같습니다.
172.30.124.220
172.30.124.220
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 컨테이너 이미지 레지스트리 서비스 IP 주소를 가져옵니다.
oc get service docker-registry --template='{{.spec.clusterIP}}'
oc get service docker-registry --template='{{.spec.clusterIP}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 공개 호스트 이름.
예를 들면 다음과 같습니다.
docker-registry-default.apps.example.com
docker-registry-default.apps.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 컨테이너 이미지 레지스트리 공개 호스트 이름을 가져옵니다.
oc get route docker-registry --template '{{.spec.host}}'
oc get route docker-registry --template '{{.spec.host}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 서버 인증서에는 다음과 유사한 SAN 세부 정보가 포함되어야 합니다.
X509v3 Subject Alternative Name: DNS:docker-registry-public.openshift.com, DNS:docker-registry.default.svc, DNS:docker-registry.default.svc.cluster.local, DNS:172.30.2.98, IP Address:172.30.2.98
X509v3 Subject Alternative Name: DNS:docker-registry-public.openshift.com, DNS:docker-registry.default.svc, DNS:docker-registry.default.svc.cluster.local, DNS:172.30.2.98, IP Address:172.30.2.98
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 레지스트리 콘솔은 /etc/cockpit/ws-certs.d 디렉터리에서 인증서를 로드합니다. 마지막 파일에는 .cert 확장자가 알파벳순으로 사용됩니다. 따라서 .cert 파일에는 OpenSSL 스타일로 포맷된 PEM 블록이 2개 이상 포함되어야 합니다.
인증서를 찾을 수 없는 경우,
openssl
명령을 사용하여 자체 서명된 인증서가 생성되고 0-self-signed.cert 파일에 저장됩니다.
시크릿을 생성합니다.
oc create secret generic console-secret \ --from-file=/path/to/console.cert
$ oc create secret generic console-secret \ --from-file=/path/to/console.cert
Copy to Clipboard Copied! Toggle word wrap Toggle overflow registry-console 배포 구성에 보안을 추가합니다.
oc set volume dc/registry-console --add --type=secret \ --secret-name=console-secret -m /etc/cockpit/ws-certs.d
$ oc set volume dc/registry-console --add --type=secret \ --secret-name=console-secret -m /etc/cockpit/ws-certs.d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 레지스트리 콘솔의 새 배포가 트리거되어 서명된 인증서가 포함됩니다.