The Black Eyed Peas - The Time (Dirty Bit) (Official Music Video)
차례:
Let 's Encrypt는 ISRG (Internet Security Research Group)에서 개발 한 무료 공개 인증 기관입니다. Let 's Encrypt에서 발급 한 인증서는 오늘날 거의 모든 브라우저에서 신뢰합니다.
이 튜토리얼에서는 Certbot 도구를 사용하여 Debian 9에서 Nginx에 대한 무료 SSL 인증서를 얻는 방법에 대해 설명합니다. 또한 SSL 인증서를 사용하고 HTTP / 2를 활성화하도록 Nginx를 구성하는 방법도 보여줍니다.
전제 조건
이 학습을 계속하기 전에 다음 전제 조건이 충족되는지 확인하십시오.
- sudo 권한이있는 사용자로 로그인했습니다. 공용 서버 IP를 가리키는 도메인 이름이 있습니다.
example.com
사용합니다.이 지침에 따라 Nginx를 설치했습니다. 도메인에 대한 서버 블록이 있습니다. 작성 방법에 대한 자세한 내용은이 지시 사항을 따르십시오.
Certbot 설치
Certbot은 SSL 인증서를 획득 및 갱신하고 인증서를 사용하도록 웹 서버를 구성하는 작업을 자동화 할 수있는 모든 기능을 갖춘 사용하기 쉬운 도구입니다. certbot 패키지는 기본 데비안 리포지토리에 포함되어 있습니다.
패키지 목록을 업데이트하고 certbot 패키지를 설치하십시오.
sudo apt update
sudo apt install certbot
Strong Dh (Diffie-Hellman) 그룹 생성
Diffie-Hellman 키 교환 (DH)은 보안되지 않은 통신 채널을 통해 암호화 키를 안전하게 교환하는 방법입니다. 보안을 강화하기 위해 새로운 2048 비트 DH 매개 변수 세트를 생성 할 것입니다.
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
원하는 경우 크기를 최대 4096 비트로 변경할 수 있지만이 경우 시스템 엔트로피에 따라 생성 시간이 30 분 이상 걸릴 수 있습니다.
Let 's Encrypt SSL 인증서 얻기
도메인에 대한 SSL 인증서를 얻기 위해
${webroot-path}/.well-known/acme-challenge
디렉토리에 요청 된 도메인의 유효성을 검사하기위한 임시 파일을 만들어 작동하는 Webroot 플러그인을 사용합니다. Let 's Encrypt 서버는 요청 된 도메인이 certbot이 실행되는 서버로 확인되는지 확인하기 위해 임시 파일에 HTTP 요청을 보냅니다.
.well-known/acme-challenge
에 대한 모든 HTTP 요청을
/var/lib/letsencrypt
단일 디렉토리에
/var/lib/letsencrypt
합니다.
다음 명령어는 디렉토리를 생성하고 Nginx 서버에 쓸 수 있도록합니다.
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
중복 코드를 피하려면 모든 Nginx 서버 블록 파일에 포함될 다음 두 스 니펫을 작성하십시오.
텍스트 편집기를 열고 첫 번째 코드 조각 인
letsencrypt.conf
.
sudo nano /etc/nginx/snippets/letsencrypt.conf
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
Mozilla에서 권장하는 칩퍼를 포함하는 두 번째 스 니펫
ssl.conf
를 작성하고 OCSP Stapling, HSTS (HTTP Strict Transport Security)를 활성화하고 보안 중심 HTTP 헤더를 거의 적용하지 않습니다.
sudo nano /etc/nginx/snippets/ssl.conf
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
완료되면 도메인 서버 차단 파일을 열고 아래와 같이
letsencrypt.conf
스 니펫을 포함하십시오.
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
sites-enabled
디렉토리에 대한 심볼릭 링크를 생성하여 새로운 서버 블록을 활성화하십시오:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
변경 사항을 적용하려면 Nginx 서비스를 다시 시작하십시오.
sudo systemctl restart nginx
이제 웹 루트 플러그인으로 Certbot을 실행하고 다음을 실행하여 SSL 인증서 파일을 얻을 수 있습니다.
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
SSL 인증서가 성공적으로 획득되면 터미널에 다음 메시지가 인쇄됩니다.
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-07-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
다음으로 도메인 서버 블록을 다음과 같이 편집하십시오.
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
위의 구성으로 HTTPS를 강제 실행하고 www를 www가 아닌 버전으로 리디렉션합니다.
변경 사항을 적용하려면 Nginx 서비스를 다시로드하십시오.
자동 갱신 SSL 인증서 암호화
암호화하자 인증서는 90 일 동안 유효합니다. 인증서가 만료되기 전에 자동으로 갱신하기 위해 certbot 패키지는 하루에 두 번 실행되는 크론 작업을 생성하고 만료 30 일 전에 인증서를 자동으로 갱신합니다.
인증서가 갱신되면 certbot 웹 루트 플러그인을 사용하므로 nginx 서비스도 다시로드해야합니다. 다음과 같이
--renew-hook "systemctl reload nginx"
를
/etc/cron.d/certbot
파일에 추가하십시오.
sudo nano /etc/cron.d/certbot
/etc/cron.d/certbot
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
다음 명령을 실행하여 자동 갱신 프로세스를 테스트하십시오.
sudo certbot renew --dry-run
오류가 없으면 갱신 프로세스가 완료되었음을 의미합니다.
결론
오늘날 SSL 인증서를 보유해야합니다. 웹 사이트를 보호하고 SERP 순위를 높이며 웹 서버에서 HTTP / 2를 활성화 할 수 있습니다.
이 학습서에서는 Let 's Encrypt 클라이언트 인 certbot을 사용하여 도메인에 대한 SSL 인증서를 생성했습니다. 또한 코드 중복을 피하기 위해 Nginx 스 니펫을 생성하고 인증서를 사용하도록 Nginx를 구성했습니다. 학습서 끝에서 자동 인증서 갱신을위한 cronjob을 설정했습니다.
nginx 데비안 certbot ssl을 암호화하자이 글은 데비안 9 시리즈에 LEMP Stack을 설치하는 방법의 일부입니다.
이 시리즈의 다른 게시물:
• Ubuntu 18.04에 MariaDB를 설치하는 방법 • Debian 9에 Nginx를 설치하는 방법 • Debian 9에 PHP를 설치하는 방법 • Debian 9에 Nginx 서버 블록을 설정하는 방법 • Debian 9에서 암호화를 사용하여 Nginx 보안데비안 9에서 사용자를 추가하고 삭제하는 방법

사용자를 추가하고 제거하는 방법을 아는 것은 Linux 사용자가 알아야 할 기본 기술 중 하나입니다. 이 튜토리얼에서는 데비안 9에서 사용자를 추가하고 제거하는 방법을 보여줍니다.
데비안 9에서 암호화하자

이 튜토리얼은 데비안 9의 certbot 도구를 사용하여 무료 Let 's Encrypt를 얻는 과정을 안내합니다. 또한 새 SSL 인증서를 사용하고 HTTP / 2를 활성화하도록 Apache를 구성하는 방법을 보여줍니다.
데비안 10 리눅스에서 암호화하자 보안 nginx

이 튜토리얼에서는 Nginx를 웹 서버로 실행하는 버스터 인 Debian 10에 무료 Let 's Encrypt SSL 인증서를 설치하는 방법을 보여줍니다. SSL 인증서를 사용하고 HTTP / 2를 활성화하도록 Nginx를 구성하는 방법도 보여줍니다.