
디지털 해양 물방울에 암호화
2022-06-03 last update
6 minutes reading DigitalOcean과거에 사이트가 전통적인 HTTP 프로토콜을 통해 내용을 제공하는 것은 매우 정상적이었다. 왜냐하면 안전성은 큰 문제가 아니기 때문이다.그러나 이제는 신분 절도, 신용카드 절도, 도청 등 인터넷 범죄의 증가로 서버와 통신하는 채널의 안전을 확보하는 것이 중요하다.Let's encrypt는 SSL/TLS 인증서를 무료로 제공하는 인증서 발급 기관입니다.그들이 발급한 증서의 유효기간은 3개월이다. 즉, 상업급 증서 발급 기구가 발급한 1년 이상의 증서에 비해 유효기간은 90일이다.단, 비용 지불 증서와 같은 보호를 제공한다.이 때문에 많은 블로그 작가와 소규모 사이트 소유자들은 인터넷 범죄를 단속하기 위해 자주 그것을 선택한다.본고는 let's encrypt를 사용하여 Digital Ocean 물방울을 보호하는 방법을 보여 주는 데 목적을 둔다.
요구 사항
물방울에 생성된 웹 서버에 SSH 프로토콜을 통해 액세스할 수 있습니다.공식 사이트에서 Putty를 다운로드하고 설치합니다.이 프로그램은 완전히 무료입니다. Putty를 다운로드한 후 Nano를 계속 다운로드합니다.Putty의 목적은 Linux 콘솔에 액세스하여 셸 명령을 입력하는 것이고, Nano는 Nginx 기본 파일과 같은 내부 파일을 편집하는 데 사용됩니다. Putty를 시작하고 Session 탭으로 이동합니다.
호스트 이름 필드에 웹 서버를 설치한 Digital Ocean droplet의 IP 주소를 입력합니다.물방울의 IP 주소는 https://cloud.digitalocean.com/droplets 에서 확인할 수 있습니다.포트 필드에 22를 입력합니다. 위의 모든 필수 필드를 커밋한 후 OK 키를 눌러 변경 사항을 적용하고 Droplet에 로그인합니다.시스템에 로그인하면 물방울의 사용자 이름과 비밀번호를 물어봅니다.물방울을 만들 때 사용자 이름과 비밀번호는 Digital Ocean의 등록 이메일로 전송됩니다. 이 안내서는 제3자 도구인 Certbot을 사용하여 디지털 인증서를 자동으로 획득하고 갱신하는 전체 과정을 사용합니다.Certbot에는 사용할 명령을 쉽게 생성할 수 있는 사이트가 있습니다.Certbot에 따라 Ubuntu에 Certbot을 설치하는 올바른 명령은 다음과 같습니다.우선, 로컬 저장소의 패키지 정보를 업데이트한 다음에 소프트웨어 속성 유니버설 패키지를 설치합니다. 이 패키지는 개인 패키지 구현 (PPA) 을 처리할 때 유용한 스크립트를 제공한 다음certbot을 설치한 다음, 로컬 저장소를 다시 업데이트한 다음, 마지막으로pythoncertbotnginx 패키지를 설치합니다.다음 단계로 넘어가기 전에 모든 패키지가 제대로 설치되어 있는지 확인하십시오. 도메인 이름을 구매하는 사이트로 이동합니다.이 안내서는 Porkbun을 도메인 등록기로 사용하고 A 레코드를 도메인에 추가합니다.유형은 레코드입니다. IP가 루트 도메인과 연결되어 있으면 호스트가 비어 있고 루트 도메인이 없는 하위 도메인 이름을 사용합니다. 예를 들어 nucuta.com 의 경우 www. 를 사용하여 물방울의 IP 주소를 입력하십시오.
다음과 같이 WWW 트래픽을 루트 도메인으로 재정의합니다.유형은 "CNAME", 호스트는 "WWW", 정답은 "nucuta.com"또는 도메인입니다.이 단계는 매우 중요하다. 왜냐하면 모든 www 유량을 루트로 재정비하기 때문이다.
Putty에서 다음 명령을 사용하여 Nginx의 기본 파일에 액세스합니다.기본적으로 기본 파일은 주 도메인이 있는 서버 블록을 사용합니다.다른 편집기에 비해 사용하기 편하기 때문에 나노 편집기를 사용하는 것을 강력히 권장합니다. 기본 파일에서 서버 {} 블록으로 이동하여 HTTP 트래픽을 HTTPs로 다시 지정하고 보안 트래픽을 처리하는 다른 서버 블록에서 서버 이름을 도메인 이름으로 변경합니다. 예를 들어 Nginx 웹 서버를 다시 시작하려면 다음 명령을 입력합니다.기본 파일에서 변경할 때마다 전체 Nginx 서버를 다시 시작하여 새 변경 사항을 적용해야 합니다. 기본적으로 방화벽은 포트 80과 22를 제외한 모든 트래픽을 차단합니다.HTTPS는 포트 443을 사용합니다.따라서 클라이언트로부터 웹 서버에 접근할 수 있도록 수동으로 열어야 합니다.포트를 여는 것은 방화벽에 달려 있다.
다음 명령을 입력하여 CSF 구성 파일을 엽니다. TCP 입력 및 출력에 다음 포트를 추가합니다. CSF-r 를 입력하여 CSF를 다시 시작합니다.
다음 두 명령을 입력하여 HTTPS를 예외 목록에 추가합니다."Nginx-Full"패키지에는 HTTP와 HTTPS 포트가 모두 있습니다.따라서 전체 패키지를 추가하면 출입 유량을 동시에 허용할 수 있다. 상태를 보려면 다음 명령을 입력하십시오 외부 사이트에서 443 포트를 검사하여 확실히 열려 있는지 확인한다.포트가 열리면 443 포트 열기
가 표시됩니다. 이제 Certbot을 사용하여 SSL 인증서를 도메인으로 검색합니다.도메인을 지정하려면 D 매개변수가 필요합니다.루트와 www 하위 도메인을 암호화하기 위해 인증서를 발급합니다.방문자가 다른 버전에 접근하면 브라우저에서 경고가 표시됩니다.따라서 이 두 버전의 인증서를 얻는 것이 중요하다.
Certbot은 모든 HTTP 트래픽을 HTTPS로 리디렉션할 것을 요구하지만, 이것은 필요하지 않습니다. 왜냐하면 앞의 단계에서 이미 완성되었기 때문입니다. 현재 SSL 랩 사이트로 이동하여 인증서와 구성의 질이나 기타 문제를 검사합니다.https://www.ssllabs.com/ssltest/ 현재 설정이 안전하지 않으면 모질라 SSL configuration generator로 이동하여 웹 서버의 설정을 생성합니다.https://mozilla.github.io/server-side-tls/ssl-config-generator/ . 여기에는 Nginx를 사용하기 때문에 웹 서버로 Nginx를 사용하는지 확인하십시오.그것은 중급, 구형, 현대형 세 가지 선택을 제공한다.이전 옵션은 웹 사이트를 IE 6 등 거의 모든 브라우저와 호환시키고 중간 옵션은 일반 사용자의 이상적인 선택이 되도록 한다. 현대 옵션은 최대 안전성에 필요한 설정을 생성하지만 웹 사이트는 이전 브라우저에서 정상적으로 실행될 수 없다.따라서 안전성이 주요 문제인 사이트에 대해서는 사용을 강력히 권장한다. 웹 사이트로 이동하여 잠금 아이콘을 마우스 오른쪽 버튼으로 클릭한 다음 인증서 옵션을 클릭하여 인증서를 보십시오.
"까지"이후 날짜가 표시되면 "부터"옵션에서 인증서 취득 과정이 완료되었다는 것을 의미합니다.그러나 이 설명서와 같이 트래픽을 도메인으로 리디렉션하는 관련 버전은 매우 중요합니다. 예를 들어 HTTP 및 WWW 트래픽은 HTTPS 루트 도메인으로 리디렉션할 수 있습니다.인증서는certbot에서 자동으로 업데이트됩니다.따라서 사이트 소유자에게 영원히 무료로 제공할 수 있다.
요구 사항
이 안내서는 웹 서버를 실행하는 운영체제로 Ubuntu 16.04를 사용합니다.그러나 설정에 차이가 없으면 다른 Ubuntu 버전에서도 같은 절차를 사용할 수 있습니다.이 안내서는 사용자가 Nginx인 웹 서버를 설치했다고 가정합니다.SSH 클라이언트의 경우 Putty, 파일 편집기의 경우 Nano를 사용하는 것이 좋습니다.
솔루션
sudo apt-get install putty
sudo apt-get install nano

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx


sudo nano /etc/nginx/sites-available/default
server_name nucuta.com www.nucuta.com
sudo systemctl reload nginx
CSF에서(구성된 서버 방화벽)
nano /etc/csf/csf.conf
TCP_IN = "20,21,22,25,53,80,443"
TCP_OUT = "20,21,22,25,53,80,443"
USF(단순 방화벽)에서
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
ufw status

sudo certbot --nginx -d nucuta.com -d www.nucuta.com

