HTTPS 팜용 Let's encrypt SSL 인증서를 사용하는 방법

카테고리 보기

HTTPS 팜용 Let's encrypt SSL 인증서를 사용하는 방법

11 분 읽음

회사 개요 #

Let's Encrypt는 다음을 사용하는 개방적이고 자동화된 인증 기관입니다. 절정 (자동 인증서 관리 환경) 프로토콜을 사용하여 호환되는 모든 클라이언트에 무료 TLS/SSL 인증서를 제공합니다. 이러한 인증서는 웹 서버와 사용자 간의 통신을 암호화하는 데 사용될 수 있습니다.

이 튜토리얼에서는 인증 기관과 인증 방법에 대해 간략하게 설명합니다. RELIANOID 통합이 Let's Encrypt와 작동한 다음 어떻게 작동하는지 검토하세요. RELIANOID 를 사용하여 certbot (ACME 클라이언트) Let's encrypt 인프라와 통신을 하기 위해.

RELIANOID Load Balancer 6.0.3 이상 버전에는 다음과 같은 작은 certbot 래퍼가 포함되어 있습니다. letsencryptz Certbot 웹루트 기능을 사용하기 위해 다음 줄에서는 이 래퍼의 작동 방식을 설명합니다. 프로덕션 환경에서 작동하도록 하려면 이 모든 것을 고려하십시오.

Let's encrypt 유효성 검사는 어떻게 작동하나요? #

간략한 웹루트 기능 설명으로, 웹루트 플러그인은 요청한 각 도메인에 대해 임시 파일을 생성하여 작동합니다. RELIANOID 파일 경로 /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/. 그런 다음 Let's Encrypt 유효성 검사 서버는 요청된 각 도메인의 DNS가 letsencryptz 래퍼를 실행하는 서버로 확인되고 유효성 검사 목적으로 임시 파일에 액세스할 수 있는지 확인하기 위해 HTTP 요청을 만듭니다. 다음 다이어그램에서는 실제 예를 설명합니다.

암호화하자 RELIANOID

이전 다이어그램에서는 RELIANOID 로드 밸런서는 공용 IP 주소가 있는 라우터/방화벽 뒤에 있습니다. 185.79.20.147 (예를 들어) HTTP 및 HTTPS 트래픽은 VIP 192.168.101.31을 사용하여 내부 로드 밸런서로 연결됩니다(예를 들어). 여기서 로드 밸런서는 2개의 서로 다른 팜으로 구성됩니다.

HTTPS 팜 이름 WebHosting 를 통해 192.168.101.31:443. 이 팜은 웹 호스팅 제공을 담당하며, 이와 함께 다양한 웹 서버가 인터넷에 게시됩니다. 예를 들어, test1.relianoid.com, test2.relianoid.com, test3.relianoid.com 이 가상 서비스에 게시된 웹 페이지를 테스트하고 있습니다.
HTTP 팜 이름 웹호스팅리디렉션 를 통해 192.168.101.31:80. 이 팜은 리디렉션 목적으로만 사용되며 모든 트래픽을 HTTP에서 HTTPS로 강제 실행합니다.

이전 다이어그램은 도메인에 대한 SSL Let's Encrypt 인증서 요청을 설명합니다. test1.relianoid.com 다음과 같이 :

1. 인증서 요청은 로드 밸런서 자체에서 Let's Encrypt 인프라로 전송됩니다.
2. Let's encrypt는 다음에 대한 새로운 SSL 인증서 요청을 감지합니다. test1.relianoid.com
3. 요청된 호스트에 대해 DNS IP 확인을 암호화하여 실행해 보겠습니다. test1.relianoid.com 결과가 요청을 시작한 것과 동일한 원본 IP인 공용 IP인지 확인합니다.
4. 이 시점에서 Let's encrypt는 다음과 같이 발표합니다. letsencryptz 다음과 같은 파일을 생성하는 데 필요한 스크립트(webroot cerbot) 해시시 공개 경로에서 http://test1.relianoid.com/.well-know/acme-challenge/ (80 TCP 포트), 로컬 디렉토리 /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/. 그때, letsencryptz 인터넷에서 이 파일에 액세스할 수 있도록 임시 서비스를 구성합니다(팜 웹호스팅리디렉션 이 목적으로 수정될 예정입니다. 이미 구성된 팜이 없는 경우 letsencryptz 이 VIP 및 항구에 일시적인 VIP가 생성됩니다.
6. 자마자 letsencryptz 임시 서비스 생성을 확인하고 Lets Encrypt 서버는 임시 유효성 검사 파일이 생성되었는지 확인하고 해시시 내용이 정확합니다.
7. 마지막으로 Let's Encrypt 서버는 이미 생성된 인증서를 사용하여 첫 번째 요청에 응답합니다. 공통 이름 (CN) test1.relianoid.com.
8. RELIANOID 이미 생성된 인증서를 로컬 경로에 저장합니다. /usr/local/relianoid/config/ 이제 팜에서 구성할 준비가 되었습니다. WebHosting.

이 단계에서는 새로운 Let's Encrypt 인증서가 HTTPS 가상 서비스에 사용됩니다.

자동화 명령을 암호화하자 #

설명된 바와 같이, letsencryptz 스크립트는 생성, 갱신, 파기, 나열 등 SSL 인증서를 관리하는 데 필요한 작업을 자동화합니다. 아래에서 사용 가능한 명령을 찾아보세요.

root@zva6k:~# letsencryptz letsencryptz 설명: letsencryptz는 Relianoid https 프로필에 대한 Let's Encrypt 인증서를 관리할 수 있도록 최소한의 매개변수를 갖춘 let's encrypt(certbot) 래퍼입니다. 이 래퍼는 certbot webroot 기능을 사용하므로 공개 Let's encrypt 아키텍처는 요청된 도메인에 대한 요청 검증을 위해 로컬 가상 IP 및 포트(기본적으로 TCP 80)에 연결해야 합니다. 따라서 "obtain" 매개변수가 사용되자마자 이 스크립트는 검증 목적으로 Let's encrypt에서 액세스할 HTTP 팜을 구성합니다. 이 구성은 이 스크립트 자체에서 자동으로 수행됩니다. 사용된 가상 IP와 HTTP 포트 80이 다른 부하 분산 팜에서 사용되지 않는지 확인하고, 요청된 도메인에 대한 DNS 확인이 let's encrypt 시스템에서 도달 가능한지 확인합니다.


사용법: /usr/local/relianoid/bin/letsencryptz action: --obtain | --destroy | --renew | --list | --listconf | --help --obtain: webroot cert-bot 모듈을 사용하여 새로운 인증서를 요청합니다.

		명령어: --vip --농장 --도메인 --도메인 --도메인 --test --vip: 가상 IP는 임시 웹 서버를 게시하기 위해 이미 구성되어 있으며, 이는 인증서 요청을 확인하기 위해 Let's Encrypt 공개 서버를 통해 연결됩니다. 가상 IP는 로컬 프로세스에 바인딩되기 위해서는 80 포트에서 사용 가능해야 합니다. 사용 가능하지 않은 경우 대신 --farm을 사용하세요.
        		--farm: "letsencryptz"라는 임시 서비스를 구성하는 팜 이름입니다. 팜을 사용하지 않으면 "letsencryptRelianoid"라는 임시 팜이 선택된 가상 IP에 구성됩니다.
        		--domain: 인증서를 요청하는 도메인, 즉 www.mycompany.com.
			--test: 선택적 매개변수, 사용하는 경우 인증서는 테스트 목적으로 요청됩니다.

	--destroy: 지정된 인증서 이름을 해지하고 삭제합니다. 해당 인증서가 팜에서 사용 중인 경우 작업이 거부됩니다.
		
		명령어: --certname --certname: 인증서 이름, 이 값은 작업 --list에서 얻을 수 있습니다.

	--renew: 만료일이 가까운 인증서를 갱신합니다. 명령은 필요 없습니다. 명령: --test --forcerestart --vip --농장 --test: 선택 매개변수, 이 매개변수를 사용하면 드라이런이 실행되고 인증서 갱신이 시뮬레이션됩니다. 
			--forcerestart: 선택적 매개변수입니다. 이 매개변수를 사용하면 갱신된 인증서를 사용하는 팜이 변경 사항을 적용하기 위해 다시 시작됩니다.
                        --vip: 임시 웹 서버를 게시할 가상 IP가 이미 구성되어 있으며, 이는 인증서를 갱신하기 위해 공개 서버를 암호화하여 연결됩니다. 가상 IP는 로컬 프로세스에 바인딩되기 위해서는 80 포트에서 사용 가능해야 합니다. 사용 가능하지 않은 경우 대신 --farm을 사용하세요.
                        --farm: "letsencryptz"라는 임시 서비스를 구성하는 팜 이름입니다. 팜을 사용하지 않으면 "letsencryptRelainoid"라는 임시 팜이 선택된 가상 IP에 구성됩니다.

	--list: let's encrypt가 관리하는 모든 로컬 인증서와 상태를 나열합니다. 명령은 필요하지 않습니다.

	--listconf: 나열합니다RELIANOID


시스템이 해결되지 않은 종속성을 자동으로 설치하기 때문에 letsencryptz가 처음 실행될 때 약간의 시간이 걸립니다. 또한 사용을 시작하기 전에 구성 검토가 수행되고 Let's Encrypt는 인증서와 관련된 이메일 계정 또는 연락처 목적을 요청합니다. 이 이메일 계정은 Let's Encrypt 시스템에 대해 수행되는 모든 작업과 함께 사용됩니다. 이 이메일은 기본 구성 파일에서 구성할 수 있습니다. /usr/local/relianoid/config/global.conf, 지시어 $le_email.

몇 가지 사용 예가 아래에 나와 있습니다.

RELIANOID 인증서 생성을 암호화하자 #

이 명령은 도메인에 대한 새 인증서를 요청합니다. test2.relianoid.com. 지정된 VIP는 내부 VIP가 되며 트래픽은 공용 IP에서 내부 VIP로 전달되어야 한다는 점을 고려하세요. Let's Encrypt가 이 서비스에 접근할 수 없으면 요청이 거부됩니다.

root@zva6k:~# letsencryptz --obtain --vip 192.168.101.31 --domain test2.relianoid.com 경고: 팜 이름이 지정되지 않았습니다. 이름이 letsencryptRelianoid인 임시 팜이 VIP 192.168.101.31 포트 80에 생성됩니다. let's encrypt를 위한 팜 구성 인증서 이름 확인 test2.relianoid.com 도메인에 대한 인증서 획득... 디버그 로그를 /var/log/letsencrypt/letsencrypt.log에 저장 선택된 플러그인: 인증자 webroot, 설치 프로그램 없음 새 인증서 획득 비표준 경로, 운영 체제 패키지 관리자가 설치한 crontab과 작동하지 않을 수 있음 test2.relianoid.com 도메인에 대한 인증서 요청 정상 PEM 형식의 인증서 이름 test2.relianoid.com이 생성되어 HTTPS 프로필에 사용할 수 있음 letsencryptRelianoid 팜에 대한 webroot 구성을 삭제합니다. 이미 구성된 구성을 삭제합니다. letsencryptRelianoid, 서비스 letsencryptz 갱신된 인증서를 사용하여 팜 재시작: 

RELIANOID 인증서 목록을 암호화하자 #

이 명령을 실행하면 현재 관리되는 인증서가 표시됩니다. RELIANOID 시스템을 암호화합시다.

root@zva6k:~# letsencryptz --list config dir /usr/local/relianoid/config/letsencrypt/에서 현재 구성에 사용 가능한 모든 인증서를 나열합니다.디버그 로그를 /var/log/letsencrypt/letsencrypt.log에 저장합니다.인증서 이름: test1.relianoid.com 도메인: test1.relianoid.com 만료일: 2019-09-19 10:48:02+00:00(유효일: 77일) Pem 인증서 파일: /usr/local/relianoid/config/test1_relianoid_es.pem 인증서 이름: test3.relianoid.com 도메인: test3.relianoid.com 만료일: 2019-09-26 06:32:52+00:00(유효일: 83일) Pem 인증서 파일: /usr/local/relianoid/config/test3_relianoid_es.pem


필드를 고려하십시오 인증서 이름, 이 필드는 letsencryptz 래퍼에 의해 다음과 같이 인식됩니다. –인증서 이름.

RELIANOID 인증서 갱신을 암호화하자 #

이전 명령은 이미 생성된 인증서에 갱신이 필요한지 확인합니다. 이 경우 갱신이 자동으로 수행됩니다. 갱신된 인증서를 사용 중인 경우 변경 사항을 적용하려면 팜을 다시 시작해야 한다는 점을 고려하세요. 옵션을 사용하세요. – 강제 재시작 당신이 원하는 경우 letsencryptz 변경 사항을 적용하는 데 필요한 모든 팜을 다시 시작합니다.

root@zva6k:~# letsencryptz --renew --vip 192.168.101.31 필요한 모든 인증서 갱신 디버그 로그를 /var/log/letsencrypt/letsencrypt.log에 저장 인증서 아직 갱신 기한이 아님 인증서 갱신 기한이 아직 아님

RELIANOID 인증서 삭제를 암호화하자 #

이 명령은 해당 인증서를 취소하고 삭제합니다. 선택한 인증서가 현재 HTTPS 팜에서 사용 중임을 시스템이 감지하는 경우 작업이 거부됩니다. 위의 예에서는 인증서가 팜에서 사용 중이므로 삭제 작업이 거부됩니다. 테스트https.

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com 현재 구성에 대한 test3.relianoid.com 인증서를 해지하고 삭제합니다... 이 파일은 팜에서 사용 중이므로 삭제할 수 없습니다: testhttps

팜에서 인증서 할당이 취소되자마자 다음 작업이 수행됩니다.

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com 현재 구성에 대한 test3.relianoid.com 인증서를 해지 및 삭제합니다... 디버그 로그를 /var/log/letsencrypt/letsencrypt.log에 저장합니다. /usr/local/relianoid/config/test3_relianoid_es.pem 경로에서 test3.relianoid.com 인증서를 삭제했습니다.

Let's Encrypt 인증서를 다음으로 마이그레이션 RELIANOID #

RELIANOID 로드 밸런서는 다음의 모든 구성 파일을 저장합니다. certbot 로컬 경로에서 /usr/local/zevenet/config/letsencrypt/. 기존 certbot 구성 파일을 이동하려면(기본적으로 /etc/letencrypt) 다른 서버의 RELIANOID, 서버에 있는 기존 구성 디렉터리의 tarball(tar.gz 파일)을 만들고 RELIANOID 구성 경로를 암호화해 보겠습니다. 마지막으로 변수 수정을 고려하십시오. $le_email 파일에 global.conf 이전 요청에 사용된 것과 동일한 이메일로 보내드립니다.

Let's Encrypt 인증서 클러스터링 지원 #

RELIANOID Let's Encrypt 플러그인은 완전히 지원됩니다. RELIANOID 클러스터 서비스. 모든 Let's Encrypt 작업은 복제된 구성 파일에 저장됩니다. RELIANOID Cluster Service에서 실행되는 모든 작업은 MASTER 노드는 노예 노드가 자동으로 실행되지만 모든 작업은 노예 Let's Encrypt와 관련된 노드는 비동기화를 방지하기 위해 폐기됩니다.

인증서 자동 갱신을 암호화하자 #

RELIANOID 일부 인증서를 갱신해야 하는지 매일 확인하기 위해 Let's Encrypt 플러그인을 구성할 수 있습니다. 시스템이 특정 인증서를 자동으로 갱신하고 일부 팜에서 사용 중인 경우 인증서를 적용하기 위해 팜이 자동으로 다시 시작됩니다. 변화.

자동 갱신을 구성하려면 다음을 수행하십시오.

다음 cron 파일을 생성합니다. /etc/cron.d/letsencryptz 다음 내용으로

root@zva6k:~# cat /etc/cron.d/letsencryptz 00 00 * * * 루트 /usr/local/relianoid/bin/letsencryptz --갱신 --강제재시작 --vip 192.168.101.31

이 구성을 사용하면 매일 00:00(자정)에 갱신 확인이 실행됩니다. 그리고 VIP 192.168.101.31은 Let's Encrypt System의 확인 목적으로 포트 80에서 사용됩니다.

참고자료 #

이 기사에 사용된 일부 참고 자료는 다음과 같습니다.

웹루트와 Certbot
Let's Encrypt의 작동 방식

📄 이 문서를 PDF 형식으로 다운로드하세요 #

    이메일 : *

    에 의해 구동 더 나은 문서