이 문서에서는 Let's Encrypt 인증서를 얻고 Cisco Business Dashboard에 설치하고 CLI(Command Line Interface)를 사용하여 자동 갱신을 설정하는 방법에 대해 설명합니다. 인증서 관리에 대한 일반적인 정보를 보려면 Cisco Business Dashboard(Cisco Business 대시보드)에서 Manage Certificates(인증서 관리) 문서를 참조하십시오.
Let's Encrypt는 자동화된 프로세스를 통해 무료 DV(Domain Validation) SSL(Secure Sockets Layer) 인증서를 대중에게 제공하는 인증 기관입니다. Let's Encrypt는 최종 사용자가 올바른 서비스에 액세스하고 있음을 확신할 수 있도록 웹 서버용 서명된 인증서를 얻기 위해 쉽게 액세스할 수 있는 메커니즘을 제공합니다. 자세한 내용은 Let's Encrypt 웹 사이트를 참조하십시오.
Cisco Business Dashboard로 Let's Encrypt 인증서를 사용하는 것은 매우 간단합니다. Cisco Business Dashboard에는 웹 서버에서 인증서를 사용할 수 있도록 하는 것 외에도 인증서 설치에 대한 몇 가지 특수한 요구 사항이 있지만, 제공된 명령줄 도구를 사용하여 인증서 발급 및 설치를 자동화하는 것은 여전히 가능합니다. 이 문서의 나머지 부분에서는 인증서를 발급하고 인증서 갱신을 자동화하는 프로세스를 단계별로 설명합니다.
이 문서에서는 HTTP 챌린지를 사용하여 도메인 소유권을 검증합니다. 이를 위해서는 표준 포트 TCP/80 및 TCP/443에서 인터넷에서 대시보드 웹 서버에 연결할 수 있어야 합니다. 인터넷에서 웹 서버에 연결할 수 없는 경우 대신 DNS 문제를 사용해 보십시오. 자세한 내용은 Cisco Business Dashboard with DNS에서 Let's Encrypt for Cisco Business Dashboard를 참조하십시오.
첫 번째 단계는 ACME 프로토콜 인증서를 사용하는 소프트웨어를 가져오는 것입니다. 이 예에서는 certbot 클라이언트를 사용하지만, 다른 많은 옵션을 사용할 수 있습니다.
인증서 갱신을 자동화하려면 대시보드에 certbot 클라이언트를 설치해야 합니다. 대시보드 서버에 certbot 클라이언트를 설치하려면 다음 명령을 사용합니다.
이 문서에서 파란색 섹션은 프롬프트와 CLI의 출력입니다. 화이트리스트에 명령이 나열됩니다. dashboard.example.com, pnpserver.example.com, user@example.com과 같은 녹색 색상 명령은 사용자 환경에 적합한 DNS 이름으로 대체해야 합니다.
다음으로, 호스트 이름의 소유권을 확인하는 데 필요한 챌린지 파일을 호스팅하도록 대시보드 웹 서버를 설정해야 합니다. 이를 위해 이러한 파일의 디렉토리를 만들고 웹 서버 컨피그레이션 파일을 업데이트합니다. 그런 다음 대시보드 응용 프로그램을 다시 시작하여 변경 사항을 적용합니다. 다음 명령을 사용합니다.
cbd:~$sudo mkdir /usr/lib/ciscobusiness/dashboard/www/letsencrypt cbd:~$sudo chmod 755 /usr/lib/ciscobusiness/dashboard/www/letsencrypt cbd:~$sudo bash -c 'cat > /var/lib/ciscobusiness/dashboard/nginx/nginx-loc-letsencrypt.conf' << EOF다음 명령을 사용하여 인증서를 요청합니다.
cbd:~$sudo certbot certonly —webroot -w /usr/lib/ciscobusiness/dashboard/www/letsencrypt/ -d dashboard.example.com -d pnpserver.example.com —deploy-hook "cat /etc/letsencrypt/live/dashboard.example.com/fullchain.pem /etc/ssl/certs/DST_Root_CA_X3.pem > /tmp/cbdchain.pem; /usr/bin/cisco-business-dashboard importcert -t pem -k /etc/letsencrypt/live/dashboard.example.com /privkey.pem -c /tmp/cbdchain.pem이 명령은 Let's Encrypt 서비스에 각 이름에 호스팅된 웹 서비스에 연결하여 제공된 호스트 이름의 소유권을 확인하도록 지시합니다. 즉, 대시보드 웹 서비스는 인터넷에서 액세스할 수 있어야 하며 포트 80 및 443에서 호스팅되어야 합니다. 대시보드 관리 UI(사용자 인터페이스)의 System(시스템) > Platform Settings(플랫폼 설정) > Web Server(웹 서버) 페이지에 있는 Access Control(액세스 제어) 설정을 사용하여 대시보드 애플리케이션에 대한 액세스를 제한할 수 있습니다. 자세한 내용은 Cisco Business Dashboard Administration Guide를 참조하십시오.
다음과 같은 이유로 명령의 매개변수가 필요합니다.
관장용 | 인증서를 요청하고 파일을 다운로드합니다. 설치를 시도하지 마십시오. Cisco Business Dashboard의 경우 인증서는 웹 서버뿐만 아니라 PnP 서비스 및 기타 기능에서도 사용됩니다. 따라서 certbot 클라이언트가 인증서를 자동으로 설치할 수 없습니다. |
—webroot -w ... | 대시보드 웹 서버를 통해 액세스할 수 있도록 위에서 만든 디렉터리에 챌린지 파일을 설치합니다. |
-d dashboard.example.com -d pnpserver.example.com |
인증서에 포함해야 할 FQDN입니다. 나열된 이름은 인증서의 Common Name(공용 이름) 필드에 포함되고 모든 이름은 Subject-Alt-Name(주체 대체 이름) 필드에 나열됩니다. pnpserver.<domain> 이름은 DNS 검색을 수행할 때 네트워크 플러그 앤 플레이 기능에 사용되는 특수 이름입니다. 자세한 내용은 Cisco Business Dashboard Administration Guide를 참조하십시오. |
—deploy-hook "..." | cisco-business-dashboard 명령줄 유틸리티를 사용하여 Let's Encrypt 서비스에서 받은 개인 키 및 인증서 체인을 대시보드 UI(사용자 인터페이스)를 통해 파일을 업로드한 것과 동일한 방식으로 대시보드 애플리케이션에 로드합니다. 인증서 체인을 앵커하는 루트 인증서도 여기에서 인증서 파일에 추가됩니다. 이는 Network Plug and Play를 사용하여 구축되는 특정 플랫폼에 필요합니다. |
certbot 클라이언트에서 생성한 지침에 따라 인증서를 생성하는 프로세스를 진행합니다.
cbd:~$sudo certbot certonly —webroot -w /usr/lib/ciscobusiness/dashboard/www/letsencrypt/ -d dashboard.example.com -d pnpserver.example.com —deploy-hook "cat /etc/letsencrypt/live/dashboard.example.com/fullchain.pem /etc/ssl/certs/DST_Root_CA_X3.pem > /tmp/cbdchain.pem; /usr/bin/cisco-business-dashboard importcert -t pem -k /etc/letsencrypt/live/dashboard.example.com /privkey.pem -c /tmp/cbdchain.pem"이메일 주소 또는 C를 입력하여 취소합니다.
(긴급 갱신 및 보안 알림에 사용되는) 이메일 주소를 입력합니다(다음 위치에 'c'를 입력합니다.)동의하려면 A를 입력하고 취소하려면 C를 입력합니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -예에 Y를 입력하고 아니오에 N을 입력합니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -인증서가 발급되었으며 파일 시스템의 /etc/letsencrypt/live 하위 디렉토리에 있을 수 있습니다.
새 인증서 가져오기인증서가 포함된 디렉토리에는 루트 사용자만 파일을 볼 수 있도록 권한이 제한되어 있습니다. 특히 privkey.pem 파일은 민감하며 이 파일에 대한 액세스는 권한이 있는 담당자로만 제한해야 합니다.
이제 대시보드가 새 인증서로 실행됩니다. 주소 표시줄에 인증서를 생성할 때 지정된 이름 중 하나를 입력하여 웹 브라우저에서 대시보드 UI(사용자 인터페이스)를 여는 경우 웹 브라우저는 연결을 신뢰할 수 있고 안전함을 나타내야 합니다.
Let's Encrypt에서 발급한 인증서의 수명은 현재 90일로 비교적 짧습니다. Ubuntu Linux용 인증서 봇 패키지는 하루 두 번 인증서의 유효성을 검사하고 만료가 임박한 경우 인증서를 갱신하도록 구성되므로 인증서를 최신 상태로 유지하기 위한 조치가 필요하지 않습니다. 정기 검사가 올바르게 수행되는지 확인하려면 인증서를 처음 생성한 후 최소 12시간 동안 기다린 다음 certbot 로그 파일에서 다음과 유사한 메시지를 확인합니다. cbd:~$ sudo tail /var/log/letsencrypt/letsencrypt.log
2020-07-31 16:50:52,783:DEBUG:certbot.main:certbot 버전: 0.31.0
2020-07-31 16:50:52,784:DEBUG:certbot.main:인수: ['-q']
2020-07-31 16:50:52,785:DEBUG:certbot.main:검색된 플러그인:
(PluginEntryPoint#manual,
PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2020-07-31 16:50:52,793:DEBUG:certbot.log:30에 설정된 루트 로깅 수준
2020-07-31 16:50:52,793:INFO:certbot.log:디버그 로그 저장
/var/log/letsencrypt/letsencrypt.log
2020-07-31 16:50:52,802:DEBUG:certbot.plugins.selection:
요청된 인증자 <certbot.cli.
0x7f1152969240> 및 <certbot.cli 설치 프로그램의 기본 개체(_D)
0x7f의 기본 개체(_D1152969240>
2020-07-31 16:50:52,811:INFO:certbot.renewal:Cert not yet due for renewal
2020-07-31 16:50:52,812:DEBUG:certbot.plugins.selection:요청된 인증자
webroot 및 installer 없음
2020-07-31 16:50:52,812:DEBUG:certbot.renewal:갱신 실패 없음
인증서 만료일이 30일 이내로 될 때까지 충분한 시간이 경과하면 certbot 클라이언트는 인증서를 갱신하고 업데이트된 인증서를 대시보드 애플리케이션에 자동으로 적용합니다.
certbot 클라이언트 사용에 대한 자세한 내용은 certbot 설명서 페이지를 참조하십시오.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
27-Aug-2020 |
최초 릴리스 |