연동할 Registry 주소가 Server 인증서의 SAN(Subject Alt Name) 리스트에 포함되지 않은 경우
연동하려는 Registry 주소가 인증서 발급 시 설정한 SAN(Subject Alternative Name) 리스트에 포함되어 있지 않으면 발생하는 인증 에러이다.
따라서 SAN(Subject Alternative Name) 리스트에 있는 주소 값으로 접속 시도해야 한다.
##
## Certificate(인증서) 만들 때, SAN(Subject Alt Name)에 없는 주소 값을 이용하여
## Container Image Registry에 접근하려고 하면, 아래와 같이 오류가 발생한다.
## 즉, Docker Registry(v2) 또는 Harbor를 구동할 때 사용한 Server Certificate이 있을 텐데,
## 그 Certificate을 만들 때 "Subject Alternative Name" 리스트에 서버의 domain name 주소나 IP Address를
## 입력했었을 것이다.
## 그 입력했던 "Subject Alt Name" 리스트 중에 아래와 같이 Registry에 접속할 때 사용한 Server의 주소 값이 없으면
## "Authenticting creds error"가 발생한다.
##
$ podman login 10.10.12.10:5000
Username: myid
Password: ~~~~~
Error: error authenticating creds for "10.10.12.10:5000": error pinging docker registry 10.10.12.10:5000: Get "https://10.10.12.10:5000/v2/": x509: cannot validate certificate for 10.10.12.10 because it doesn't contain any IP SANs
##
## 인증서의 Subject Alt Name과 동일한 값으로 Registry에 접근하면 문제 없이 접속된다.
## 즉, 아래 예제로 본다면, "my-registry.my-domain"이
## 인증서의 Subject Alt Name인 것이다.
##
$ podman login my-registry.my-domain:5000
Username: myid
Password: ~~~~~
Login Succeeded!
Case (B)
Client OS에 Server Certificate이 등록되지 않은 경우
정확히 표현하면, Podman 명령, Docker 명령을 실행하려는 장비에 Harbor 또는 Docker Registry의 Server Certificate(인증서)가 등록되어 있지 않은 경우에 이런 Unknown Authority 에러가 발생한다.
보통 Self-signed Certificate을 사용한 경우라면, 이 인증 에러가 발생할 것이다.
심각한 에러는 아니고, Podman명령을 수행할 장비(예: Macbook, Ubuntu, Windows 10, Windows 11)에서 아래와 같이 OS에 Self-signed Certificate을 신뢰(Trust)하겠다는 명령만 수행하면 된다.
##
## podman 명령이나 docker 명령을 수행하는 Client OS 쪽에 CA로부터 Sign받은 Server Certificate 이 없는 경우,
## 아래와 같이 인증 에러가 발생한다.
##
$ podman login my-registry.my-domain:5000
Username: myid
Password: ~~~~~
Error: authenticating creds for "my-registry.my-domain:5000":
error pinging docker registry registry.base.twcm.cloud:5000:
Get "https://registry.base.twcm.cloud:5000/v2/": x509:
certificate signed by unknown authority
$
##
## 이럴 때는 CA에게 Sign받은 Certificate을 아래와 같이 Client OS에 복사해주고 등록(Update)하면 된다.
##
## 참고 사항: my-server-domain.crt 파일은 Image Registry를 구동할 때 사용했던 파일이다.
## (즉, my-server-domain.crt는 harbor 구동시 사용한 server certificate이라는 뜻이다)
##
$ cp my-server-domain.crt /etc/pki/ca-trust/source/anchors/my-server-domain.crt
$ update-ca-trust
$ podman login my-registry.my-domain:5000
Username: myid
Password: ~~~~~
Login Succeeded!
$
참고: 위 설명은 CentOS, RHEL을 사용할 때를 예로 든 것이고, Ubuntu OS에서 Server Certificate 등록하는 방법은 아래와 같다.
##
## Ubuntu OS를 사용하는 경우는 아래처럼 update-ca-certificates 명령을 사용해야 한다.
## Ubuntu에서 Certificate을 등록하는 방법은 CentOS, RHEL 8와 다르다.
##
$ cp my-domain.crt /usr/local/share/ca-certificates/domain.crt
$ update-ca-certificates
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
$ podman login my-registry.my-domain:5000
Username: myid
Password:
Login Succeeded!
$
Windows 10 Home/Pro를 FPP(Full Package Product), ESD(Electronic Software Distribution) 형태로 구입한 경우에는 이미 설치한 Windows 10을 삭제하고, 다른 PC에 Windows 10을 설치하고 Windows 10 License도 옮길 수 있다. (즉, 다른 PC에서 정품 인증이 된다)
그러나 Windows 10이 설치되었던 기존 PC에서 Windows 10을 삭제하기 전에 정품 인증을 해제해야 한다.
이렇게 먼저 정품 인증을 해제하지 않고, Windows 10만 삭제하면 Microsoft 고객센터에 전화해서 정품 인증 절차를 받아야 하는데 실제로 전화해서 정품 인증 절차를 받아보면서 느낀 점은 "아~ 지친다!!!" 이다.
고객센터와 정말 통화를 길게해야 한다.
게다가 이 고객센터가 필리핀 같은 곳에 있는지 통화 품질이 엄청 안 좋고, 소리도 작다.
그래서 통화를 15분 정도 하면서 스트레스를 꽤 많이 받았다.
전화상으로 수십 자리의 알파벳 코드를 불러 주는 것을 듣고 PC에 입력해야 하는데, 이거 상당히 어렵다. ㅠㅠ
(전화를 해보면 알겠지만, 고객센터가 달나라에 있는 것처럼 음질이 너무 안 좋다)
아래 블로그에 윈도우즈 라이센스를 해제하는 방법이 잘 설명되어 있다.
그리고 Windows 10을 삭제하기 전에 현재의 Product Key를 확인하고, 삭제해야 한다.
만약, MS 계정으로 등록된 PC라면, 아래와 같이 추가로 MS 홈피에 접속해서 계정에 등록된 PC를 지워야 한다.
꼭!!! 지워야 한다.
작업 순서는 아래와 같다.
https://microsoft.com 에 로그인한다.
Web 화면의 우측 상단에 있는 사람 icon을 click한다.
"내 Microsoft 계정"을 click한다.
"장치" Section의 "모든 장치 보기"를 click한다.
웹 페이지에 보여진 Windows가 설치된 PC 정보를 확인하고 해당 PC를 삭제한다. -------------------------------------------------------------------------------------------------- 여기 까지는 microsoft.com 웹 페이지에서 하는 작업이고, 아래부터는 실제 PC에서 터미널을 열고 작업해야 한다 --------------------------------------------------------------------------------------------------
실제 컴퓨터에서 Windows를 초기화(또는 삭제)한다. Windows 제품키를 지우고, 초기화하는 것은 자세한 내용은 아래 웹 페이지를 따라 한다.