NGINX GPG Key 업데이트
NGINX Plus 또는 nginx.org의 미리 빌드된 NGINX Open Source binaries를 사용하는 경우 지금 NGINX 소프트웨어의 GPG Key 를 업데이트해야 할 수 있습니다.
Key를 업데이트하기 전까지 소프트웨어 서명을 확인할 수 없게 됩니다. 이 공지는 운영체제 배포물과 같은 NGINX Open Source를 NGINX외의 제공업체에서 얻는 경우에는 해당되지 않습니다.
GPG Key 는 Gnu Privacy Guard 또는 GnuPG의 일부입니다. GnuPG는 PGP로 널리 알려진 OpenPGP 표준의 무료 구현입니다. GPG Key 는 저장소의 패키지가 Key 소유자에 의해 작성되었는지 확인하는 데 사용됩니다.
목차
1. 누가 Key를 업데이트해야 할까요?
2. GPG Key 업데이트
2-1. Debian/Ubuntu
2-2. Amazon Linux, CentOS, Oracle Linux, RHEL, SLES
2-3. FreeBSD에서 Key 업데이트
3. GPG Key의 진위 확인
1. 누가 Key를 업데이트해야 할까요?
NGINX는 RPM 패키지 및 Debian/Ubuntu 리포지토리에서 GPG Key를 사용하여 다운로드한 패키지의 무결성과 원본을 확인할 수 있습니다. 많은 GPG Key 사용자는 Key가 주기적으로 만료되도록 설정하고 따라서 다음과 같은 경우 GPG Key를 업데이트해야 합니다.
- NGINX Plus 사용
- NGINX 에서 제공하는 NGINX Open Source binaries를 사용
다음과 같은 NGINX Open Source를 사용하는 경우 GPG Key를 업데이트할 필요가 없습니다.
- 운영체제 패키지에서. 대부분의 운영체제는 리포지토리에 NGINX를 포함합니다.
- 소스에서 컴파일. gpg
--verify
명령을 사용하여 소스 패키지 서명을 직접 확인할 수 있습니다.
2. GPG Key 업데이트
업데이트된 Key로 전환하려면 Key를 다시 가져오기만 하면 됩니다. 프로세스는 운영체제에 따라 다릅니다.
2-1. Debian/Ubuntu
Key를 잘못 구성한 경우 apt-get
update
를 실행할 때 다음 오류 중 하나가 표시됩니다.
nginx/x86_64/signature | 2.9 kB 00:00:10 !!!
http://nginx.org/packages/mainline/centos/7/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for nginx
nginx/x86_64/signature | 2.9 kB 00:00:00 !!!
http://nginx.org/packages/mainline/centos/7/x86_64/repodata/repomd.xml: [Errno -1] Gpg Keys not imported, cannot verify repomd.xml for repo nginx
Key를 업데이트하려면 새 GPG Key를 다운로드하고 이전 Key를 덮어씁니다.
# curl -O https://nginx.org/keys/nginx_signing.key && apt-key add ./nginx_signing.key
새 Key의 만료 날짜를 확인하려면 apt-key
list
를 실행합니다.
# apt-key list
...
pub 2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14]
uid nginx signing key <signing-key@nginx.com>
...
2-2. Amazon Linux, CentOS, Oracle Linux, RHEL, SLES
리포지토리가 GPG Key를 확인하고 검증하도록 구성되어 있는지 확인하십시오. 기본적으로 검사는 NGINX 및 NGINX Plus 리포지토리에 대해 비활성화되어 있지만 NGINX Amplify 리포지토리에 대해서는 활성화되어 있습니다. /etc/yum.repos.d의 yum 리포지토리 파일에 다음 줄이 포함되어 있으면 확인이 비활성화됩니다.
gpgcheck=0
다음은 검사가 비활성화된 샘플 리포지토리 파일 /etc/yum.repos.d/nginx.repo입니다.
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
이 경우 조치가 필요하지 않습니다. (확인을 비활성화하면 새 패키지를 설치할 때 경고가 표시되지만 설치는 성공합니다.)
GPG 확인을 명시적으로 구성한 경우 Key를 교체해야 합니다.
rpm
-K
명령을 실행하여 로컬로 다운로드한 패키지의 신뢰성을 확인할 수 있습니다.
- Key가 없으면 다음 오류가 표시됩니다.
# rpm -K nginx-1.11.3-1.el7.ngx.x86_64.rpm
nginx-1.11.3-1.el7.ngx.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#7bd9bf62)
- Key가 올바르게 구성된 경우 다음 메시지가 표시됩니다.
# rpm -K nginx-1.11.3-1.el7.ngx.x86_64.rpm
nginx-1.11.3-1.el7.ngx.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
GPG Key를 업데이트하려면 다음 단계를 수행하십시오.
1. 현재 NGINX GPG Key가 설치되어 있는지 확인하십시오.
# rpm -qi gpg-pubkey-7bd9bf62-*
Key가 설치된 경우 출력에 릴리스 번호와 빌드 날짜가 포함됩니다.
...
Release : 5762b5f8
...
Build Date : Fri 19 Aug 2011 05:52:34 AM EDT
...
설치되어 있지 않으면 다음 메시지가 나타납니다.
package gpg-pubkey-7bd9bf62-* is not installed
2. 현재 NGINX GPG Key를 제거합니다.
# rpm -e --allmatches gpg-pubkey-7bd9bf62-*
3. 새 Key를 다운로드하고 설치합니다.
# curl -O https://nginx.org/keys/nginx_signing.key
# rpm --import ./nginx_signing.key
(이러한 플랫폼에는 확인 출력이 없습니다.)
4. 새 GPG Key 의 릴리스 및 빌드 날짜 정보를 확인하십시오.
# rpm -qi gpg-pubkey-7bd9bf62-*
...
Release : 4e4e3262
...
Build Date : Thu 16 Jun 2016 10:21:44 AM EDT
2-3. FreeBSD에서 Key 업데이트
FreeBSD 패키지 관리 시스템은 GPG Key 를 사용하지 않으므로 조치가 필요하지 않습니다.
3. GPG Key 진위 확인
다운로드한 GPG Key의 진위 여부를 추가로 확인할 수 있습니다. GPG는 “Web of trust” 개념을 사용합니다. Key는 다른 사람의 Key로 서명될 수 있고, 이는 다른 Key로 서명되는 식입니다.
이 접근 방식을 사용하면 임의의 Key와 개인적으로 알고 신뢰하는 사람의 Key 사이에 체인을 구축할 수 있으므로 체인의 첫 번째 Key의 진위를 확인할 수 있습니다. 이 개념은 GPG Mini Howto에 자세히 설명되어 있습니다. NGINX의 Key에는 상대적으로 진위 여부를 쉽게 확인할 수 있는 충분한 서명이 있습니다.
NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의 하십시오.
사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.