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에 연락하여 문의 하십시오.

사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required