웹사이트 검색

Debian 10에 Nginx용 무료 SSL 인증서를 설치하는 방법


웹사이트를 설정할 때 염두에 두어야 할 주요 고려 사항 중 하나는 사이트의 보안입니다. SSL 인증서는 사용자의 브라우저에서 웹 서버로 전송되는 데이터를 암호화하는 디지털 인증서입니다. 이렇게 하면 전송된 데이터는 Wireshark와 같은 패킷 스니퍼를 사용하여 통신을 가로채고 도청하는 해커로부터 기밀이 유지되고 안전합니다.

암호화된 사이트에는 다음 스크린샷과 같이 URL 표시줄에 자물쇠 기호와 https라는 약어가 표시됩니다.

암호화되지 않은 사이트에는 일반적으로 URL 표시줄에 '안전하지 않음' 알림이 표시됩니다.

전제 조건

시작하기 전에 다음 요구 사항이 충족되었는지 확인하세요.

  1. Debian 10 Minimal Server의 실행 중인 인스턴스입니다.
  2. Debian 10에서 도메인 설정을 사용하여 실행 중인 Nginx 웹 서버 인스턴스.
  3. Debian 10의 IP 주소를 가리키는 A 레코드가 있는 등록된 정규화된 도메인 이름(FQDN) 도메인 제공업체에서.

이 튜토리얼에서는 linux-console.net이 IP 주소 192.168.0.104를 가리켰습니다.

이 기사에서는 Debian 10Let's Encrypt SSL을 설치하여 Nginx무료 SSL 인증서를 얻는 방법을 살펴봅니다. 강력> 호스팅 사이트.

Let's Encrypt SSL이란 무엇입니까?

Let's Encrypt SSLEFF(Electronic Frontier Foundation)에서 제공하는 무료 인증서로 3개월 동안 유효하고 만료 시 자동 갱신됩니다. 주머니가 넉넉하지 않은 경우 사이트를 암호화하는 쉽고 저렴한 방법입니다.

더 이상 고민하지 말고 Nginx 웹 서버에 Let's Encrypt를 설치해 보겠습니다.

1단계: Debian 10에 Certbot 설치

시작하려면 Let's encrypt 디지털 인증서를 가져오고 나중에 웹 서버에 배포하는 소프트웨어인 Certbot을 설치해야 합니다. 이를 위해서는 python3-certbot-nginx 패키지를 설치해야 합니다. 하지만 그렇게 하기 전에 먼저 시스템 패키지를 업데이트해 보겠습니다.

sudo apt update

다음 단계는 python3-certbot-nginx 패키지에 필요한 종속성을 설치하는 것입니다.

sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

이제 python3-certbot-nginx 패키지를 설치해 보겠습니다.

sudo apt install python3-certbot-nginx

2단계. Nginx 서버 블록 구성 확인

certbotNginx 웹 서버에 Let's encrypt SSL 인증서를 자동으로 배포하려면 서버 블록을 구성해야 합니다. 이전 기사의 마지막 섹션에서 Nginx 서버 블록 구성을 다루었습니다.

잘 따라오셨다면 /etc/nginx/sites-available/some_domain에 서버 블록이 있어야 합니다. 우리의 경우 Nginx 서버 블록은 다음과 같습니다.

/etc/nginx/sites-available/linux-console.net

또한 server_name 지시문이 도메인 이름과 일치하는지 확인하세요.

server_name linux-console.net linux-console.net;

모든 Nginx 구성이 올바른지 확인하려면 다음을 실행하세요.

sudo nginx -t

위의 출력은 모든 것이 정상임을 나타냅니다.

3단계: HTTPS 포트를 열도록 방화벽 구성

항상 권장되는 것처럼 ufw를 구성하고 활성화한 경우 모든 사람이 웹 서버에 액세스할 수 있도록 방화벽을 통해 HTTPS 프로토콜을 허용해야 합니다.

sudo ufw allow 'Nginx Full'

그런 다음 방화벽을 다시 로드하여 변경 사항을 적용합니다.

sudo ufw reload

방화벽을 통해 프로토콜을 허용했는지 확인합니다.

sudo ufw status

4단계: 도메인용 Let's Encrypt SSL 인증서 배포

모든 설정과 구성을 확인했으면 이제 도메인 사이트에서 Let's Encrypt SSL 인증서를 가져와 배포할 차례입니다.

sudo certbot --nginx -d domain-name  -d www.domain-name.com 

우리의 경우에는

sudo certbot --nginx -d linux-console.net -d linux-console.net

첫 번째 단계에서는 이메일 주소를 입력하라는 메시지가 표시됩니다. 주소를 입력하고 Enter 키를 누르세요.

다음으로 서비스 약관에 동의하라는 메시지가 표시됩니다. 계속하려면 A를 입력하세요.

Certbot은 EFF의 최신 개발에 대한 알림을 보내기 위해 귀하의 이메일을 사용하는 데 귀하의 동의를 구할 것입니다. 여기에서 선택하거나 선택 해제할 수 있습니다. 선택하려면 Y(예)를 입력하고 Enter를 누르세요. 참여를 거부하려면 N(아니요)을 누르세요.

그런 다음 Certbot은 Let’s encrypt에 접속하여 SSL 인증서를 다운로드하고 이미 생성한 Nginx 서버 블록에 배포합니다.

다음 섹션에서 2를 입력하여 일반적인 HTTP 트래픽을 HTTPS로 리디렉션합니다.

인증서가 Nginx 서버에 배포되고 웹 서버가 이제 Let's Encrypt SSL을 사용하여 암호화되었음을 확인하는 축하 알림을 받게 됩니다.

5단계: Nginx 웹사이트에서 HTTPS 확인

웹 브라우저를 통해 변경 사항을 확인하려면 브라우저 탭을 새로 고치고 자물쇠 기호를 확인하세요.

SSL 인증서 세부정보를 보려면 자물쇠 아이콘을 클릭하고 '인증서' 옵션을 선택하세요.

모든 인증서 세부 정보가 표시됩니다.

https://www.ssllabs.com/ssltest/에서 사이트 URL을 테스트하여 웹 서버의 상태를 추가로 확인할 수 있습니다. 웹 서버가 SSL 인증서를 사용하여 암호화된 경우 표시된 대로 A 점수를 받게 됩니다.

결론

이제 이 튜토리얼이 끝났습니다. 가이드에서는 Debian 10Nginx용 무료 SSL 인증서를 설치하는 방법을 배웠습니다.