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 "[email protected]"
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="[email protected]"
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에 배포했습니다. 와일드 카드 인증서는 동적으로 생성 된 여러 개의 첫 번째 수준 하위 도메인을 보호하려는 경우 유용 할 수 있습니다.



Leave a Comment

데비안에서 Chroot 설정

데비안에서 Chroot 설정

이 기사는 데비안에서 chroot jail을 설정하는 방법을 알려줍니다. 데비안 7.x를 사용한다고 가정합니다. 데비안 6 또는 8을 실행하고 있다면 작동 할 수 있습니다.

리눅스 기능으로 작업하기

리눅스 기능으로 작업하기

리눅스 기능은 리눅스 커널에서 프로세스와 바이너리 실행 파일에 특별한 권한을 부여하는 특별한 속성이다.

MongoDB 보안

MongoDB 보안

MongoDB는 기본적으로 안전하지 않습니다. 인증을 위해 구성하지 않고 MongoDB를 설치하고 시작하는 경우 시간이 오래 걸립니다

우분투에 rkhunter를 설치하는 방법

우분투에 rkhunter를 설치하는 방법

Rkhunter는 Linux 서버에서 루트킷을 찾는 소프트웨어입니다. 해커는 루트킷을 설치하여 항상 서버에 액세스 할 수 있습니다. 이 문서에서, 당신은 b

CentOS 7 서버에 OSSEC HIDS를 설치하는 방법

CentOS 7 서버에 OSSEC HIDS를 설치하는 방법

소개 OSSEC은 로그 분석, 무결성 검사, Windows 등록을 수행하는 오픈 소스 호스트 기반 침입 탐지 시스템 (HIDS)입니다.

Vultr 방화벽

Vultr 방화벽

Vultr은 하나 이상의 컴퓨팅 인스턴스를 보호 할 수있는 웹 기반 방화벽 솔루션을 제공합니다. 서버에 방화벽 규칙 세트를 마련

Google OTP를 사용하여 Ubuntu 14.04에서 SSH에 2 단계 인증 (2FA)을 설정하는 방법

Google OTP를 사용하여 Ubuntu 14.04에서 SSH에 2 단계 인증 (2FA)을 설정하는 방법

다른 시스템을 사용하십니까? SSH를 통해 서버에 로그인하는 방법에는 여러 가지가 있습니다. 비밀번호 로그인, 키 기반 로그인 및 두 개의 팩트가 포함 된 방법

Apache에서 mod_evasive 활성화

Apache에서 mod_evasive 활성화

Mod_evasive는 HTTP DoS 공격 또는 무차별 대입 공격이 탐지 될 때 자동으로 조치를 취하는 Apache 용 모듈입니다. Mod_evasive는

SSH 키를 사용하여 루트가 아닌 사용자에게 로그인

SSH 키를 사용하여 루트가 아닌 사용자에게 로그인

Vultr은 새 인스턴스를 생성 할 때 SSH 키를 사전 설치할 수있는 기능을 제공합니다. 그러나 서버 루트 사용자에 액세스 할 수 있습니다.

SSH를 사용하여 LUKS 디스크 암호화에서 LVM을 원격으로 잠금 해제하기 위해 CentOS 7 설치 및 설정

SSH를 사용하여 LUKS 디스크 암호화에서 LVM을 원격으로 잠금 해제하기 위해 CentOS 7 설치 및 설정

LUKS (Linux Unified Key Setup)는 플랫폼에 관계없이 Linux에서 사용할 수있는 다양한 디스크 암호화 형식 중 하나입니다. 이 튜토리얼은 당신에게 재치를 제공합니다

Linux에서 LetsEncrypt 설정

Linux에서 LetsEncrypt 설정

LetsEncrypt는 자동화 된 클라이언트가있는 인증 기관입니다. 즉, 무료로 웹 사이트를 보호 할 수 있습니다. 맞습니다, 당신은 할 수 있습니다 g

CentOS의 Logjam 공격으로부터 NGINX 보안

CentOS의 Logjam 공격으로부터 NGINX 보안

글쎄, 또 다른 SSL 취약점이 있습니다. 기술적으로 그것은 실제로 취약점이 아니며, 우리가 의지하는 프로토콜 내부의 구멍 일뿐입니다.

Ubuntu 16.04에 OpenVAS 취약점 스캐너를 설치하는 방법

Ubuntu 16.04에 OpenVAS 취약점 스캐너를 설치하는 방법

소개 OpenVAS는 취약성 검색 및 취약성 관리에 사용할 수있는 오픈 소스 제품군입니다. Open Vulnerabilit의 약자

CentOS 7에서 SELinux를 비활성화하는 방법

CentOS 7에서 SELinux를 비활성화하는 방법

Security-Enhanced Linux의 약어 인 SELinux는 Linux 운영 체제의 보안 향상 기능입니다. 많은 시스템을 차단하는 라벨링 시스템입니다

Ubuntu 14.04에서 복잡하지 않은 방화벽 (UFW) 구성

Ubuntu 14.04에서 복잡하지 않은 방화벽 (UFW) 구성

자체 서버를 실행할 때는 보안이 중요합니다. 인증 된 사용자 만 서버, 구성 및 서비스에 액세스 할 수 있도록하려고합니다. 나는

OpenBSD 6.1에서 암호화하자

OpenBSD 6.1에서 암호화하자

이제 더 이상 자신의 무료 SSL 인증서를 Let에서 얻을 수 있기 때문에 더 이상 누구나 자신의 SSL 인증서를 만들 필요가 없습니다.

암호화 가능 : TLS-SNI-01에서 마이그레이션

암호화 가능 : TLS-SNI-01에서 마이그레이션

Encrypt는 웹 사이트를 보호하기 위해 인증서를 생성하는 무료 서비스입니다. 다양한 유형의 인증서 생성을 지원합니다.

IPFW 및 SSHGuard를 사용하여 FreeBSD에 대한 보안 강화

IPFW 및 SSHGuard를 사용하여 FreeBSD에 대한 보안 강화

VPS 서버는 종종 침입자가 대상으로합니다. 수백 번의 무단 ssh 로그인 시도로 일반적인 유형의 공격이 시스템 로그에 나타납니다. 설정

Ubuntu 18.04 LTS에서 Nginx에서 TLS 1.3을 활성화하는 방법

Ubuntu 18.04 LTS에서 Nginx에서 TLS 1.3을 활성화하는 방법

다른 시스템을 사용하십니까? TLS 1.3은 2018 년 RFC 8446에서 제안 된 표준으로 게시 된 TLS (Transport Layer Security) 프로토콜 버전입니다.

FreeBSD 12의 Nginx에서 TLS 1.3을 활성화하는 방법

FreeBSD 12의 Nginx에서 TLS 1.3을 활성화하는 방법

다른 시스템을 사용하십니까? TLS 1.3은 2018 년 RFC 8446에서 제안 된 표준으로 게시 된 TLS (Transport Layer Security) 프로토콜 버전입니다.

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가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.