Ubuntu 19.04의 Nginx에서 암호화 할 수있는 와일드 카드 인증서 설치

2018 년 3 월 Let 's Encrypt는 와일드 카드 인증서에 대한 지원을 추가했습니다. 와일드 카드 인증서를 사용하면 단일 인증서로 도메인의 모든 첫 번째 수준 하위 도메인을 보호 할 수 있습니다. 와일드 카드 인증서는 ACME 프로토콜의 업데이트 된 버전 인 ACMEv2를 통해서만 얻을 수 있습니다. 와일드 카드 또는 비 와일드 카드 인증서에 ACMEv2를 사용하려면 ACMEv2를 지원하도록 업데이트 된 클라이언트가 필요합니다. 그러한 클라이언트 중 하나는 acme.sh이며, 이는 종속성없이 순수하게 쉘 (Unix 쉘) 언어로 작성된 ACME / ACMEv2 프로토콜 클라이언트입니다. 또한 와일드 카드 도메인은 DNS-01 챌린지 유형을 사용하여 확인해야합니다. 이는 와일드 카드 인증서를 얻기 위해 도메인에 대한 제어를 증명하기 위해 DNS TXT 레코드를 수정해야 함을 의미합니다.

이 안내서에서는 Vultr API를 사용하여 DNS 레코드를 자동으로 조작하고 인증서를 Nginx 웹 서버에 배포하는 Lexicon 도구 인 acme.sh클라이언트 를 사용하여 Ubuntu 19.04의 Let 's Encrypt에서 무료 와일드 카드 인증서를 가져오고 배포하는 방법에 대해 설명 합니다.

요구 사항

  • Ubuntu 19.04 Vultr 클라우드 서버를 새로 배포했습니다.
  • 등록 된 도메인 이름이 있습니다. 이 안내서는 example.com예제 도메인으로 사용 됩니다.
  • FQDN (정규화 된 도메인 이름)에 대해 A / AAAA 및 CNAME DNS 레코드를 설정했는지 확인하십시오. DNS 개념에 익숙해 져야하는 경우 Vultr DNS 소개 자습서 를 참조하십시오 .
  • Vultr 계정 제어판에서 Vultr API 액세스가 활성화되었습니다.

시작하기 전에

우분투 버전을 확인하십시오.

lsb_release -ds
# Ubuntu 19.04

sudo액세스 권한과 선호하는 사용자 이름 으로 새 사용자 계정을 만들고 전환하십시오. 우리는 사용 johndoe합니다.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

참고 : 대체 johndoe사용자 이름과 함께.

시간대를 설정하십시오.

sudo dpkg-reconfigure tzdata

Ubuntu 시스템이 최신인지 확인하십시오.

sudo apt update && sudo apt upgrade -y

필요한 패키지를 설치하십시오.

sudo apt install -y git wget curl socat

Nginx 설치

Nginx 웹 서버를 설치하십시오.

sudo apt install -y nginx

버전을 확인하십시오.

sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)

Python과 Lexicon 설치

acme.sh 및 Vultr API를 사용하여 Let 's Encrypt에서 와일드 카드 인증서를 얻는 프로세스의 첫 번째 단계로 PythonLexicon 을 설치해야합니다 . Lexicon은 여러 DNS 제공 업체의 DNS 레코드를 표준화 된 방식으로 조작하는 방법을 제공하는 Python 패키지입니다.

시스템에 아직 설치되어 있지 않은 경우 Python을 설치하십시오.

sudo apt install -y python3

버전을 확인하여 설치를 확인하십시오.

python3 --version
# Python 3.7.3

Lexicon 도구를 설치하십시오. 어휘집은 다양한 DNS 제공 업체에서 표준화 된 방식으로 DNS 레코드를 조작 할 수있는 Python 도구입니다.

sudo apt install -y lexicon

Lexicon 버전을 확인하십시오.

lexicon --version
# lexicon 3.0.8

acme.sh클라이언트 설치

Acme.shLet 's Encrypt를 통해 서명 된 인증서를 얻는 프로세스를 자동화하는 순수 쉘 (Unix 쉘) 언어로 작성된 ACME 프로토콜 클라이언트입니다. ACME v1 및 ACME v2를 지원하며, 가장 중요한 것은 ACME v2 와일드 카드 인증서를 지원합니다. 이 섹션에서는 Acme.sh 스크립트를 설치합니다.

참고 : / 액세스가 필요하지는 않지만 사용자 를 사용 root하여 설치 하는 것이 좋습니다 .acme.shrootsudo

root일반 사용자를 만든 경우 사용자로 전환 하십시오.

sudo su - root

다운로드하여 설치하십시오 acme.sh.

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "your_email@example.com"
source ~/.bashrc
cd

버전을 확인하십시오.

acme.sh --version
# v2.8.2

Let 's Encrypt에서 와일드 카드 인증서 받기

와일드 카드 인증서를 얻으려면 DNS 유효성 검사 방법 만 사용할 수 있습니다. Lexicon 및 Vultr DNS API를 사용하여 TXT DNS 레코드를 조작합니다.

도메인의 RSA 및 ECC 와일드 카드 인증서를 얻습니다.

# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="your_vultr_email@example.com"
export LEXICON_VULTR_TOKEN="XXXXXXXXXXXXXXX"

# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256

참고 : 도메인 이름으로 바꾸고 Vultr API 자리 표시 자 값을 사용자 고유의 이름 으로 바꾸는 것을 잊지 마십시오 example.com.

위의 명령을 실행하면 인증서와 키가 다음 위치에 있습니다.

  • RSA의 경우 : ~/.acme.sh/example.com디렉토리.
  • ECC / ECDSA의 경우 : ~/.acme.sh/example.com_ecc디렉토리.

참고 : 인증서 파일은 ~/.acme.sh/폴더에 사용해서는 안되며 내부 용으로 만 사용되며 향후 디렉토리 구조가 변경 될 수 있습니다.

인증서를 나열하려면 다음을 실행하십시오.

acme.sh --list

인증서를 프로덕션에 저장할 폴더를 만듭니다. 우리는 /etc/letsencrypt디렉토리를 사용 합니다.

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

서버에서 프로덕션 용도로 인증서를 설치 / 복사합니다.

# RSA
acme.sh --install-cert -d example.com \
        --cert-file /etc/letsencrypt/example.com/cert.pem \
        --key-file /etc/letsencrypt/example.com/private.key \
        --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
        --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
        --key-file /etc/letsencrypt/example.com_ecc/private.key \
        --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

Let 's Encrypt에서 와일드 카드 인증서를 성공적으로 얻었으므로 Nginx 웹 서버를 구성해야합니다. 모든 인증서는 60 일마다 자동으로 갱신됩니다.

원하는 위치에 인증서를 가져와 설치 한 후에는 root사용자에서 일반 sudo사용자 로 로그 아웃하고 sudo필요한 경우 계속해서 서버를 관리 할 수 ​​있습니다 .

exit

Nginx 웹 서버 구성

sudo vim /etc/nginx/sites-available/example.com.conf다음 내용으로 파일을 실행 하고 채 웁니다. 모든 발생을 example.com자신의 도메인 이름으로 대체 하십시오.

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com *.example.com;
  root /var/www/example.com;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

}

example.com.conf파일을 sites-enabled디렉토리 에 링크 하여 새 구성을 활성화하십시오 .

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Nginx 구성을 테스트하십시오.

sudo nginx -t

Nginx를 다시로드하십시오.

sudo systemctl reload nginx.service

그게 다야. acme.sh, Lexicon 및 Vultr API를 사용하여 와일드 카드 인증서를 Nginx에 배포했습니다. 와일드 카드 인증서는 동적으로 생성 된 여러 개의 첫 번째 수준 하위 도메인을 보호하려는 경우 유용 할 수 있습니다.

댓글 남기기

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.

데비안 7에 Mailcow 설치

데비안 7에 Mailcow 설치

Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구