Nginx, Let's Encrypt 및 내 서버 다운 😢

Photo by Simon Fitall on Unsplash

Google and it’s indexing rules에 주의를 기울이면 사이트에 SSL 인증서가 필요하다는 말을 들었을 것입니다. 나는 한동안 이것을 알고 있었고 petetasker.com의 내 개인 사이트는 우선순위가 높은 상황이 아니었습니다.

Welp, 나는 어느 날 밤 지루했고 멋진 바지 무료Let’s Encrypt 인증서 중 하나를 내 이전 Linode 서버에 설치해야 할 때라고 결정했습니다.

사이트에 SSL 인증서를 설치하는 방법을 설명하는 수많은 리소스가 인터넷에 있으므로 해당 부분은 다루지 않겠습니다. 내가 살펴볼 것은 그들을 맹목적으로 따르는 것이 얼마나 당신의 서버를 다운시킬 수 있는지입니다…

대부분의 자습서에서는 Certbot을 사용하여 인증서를 설치하고 Nginx를 구성하기를 원합니다.
certbot --nginx -d petetasker.com
충분히 무해한 것 같죠? 작은 글씨를 읽지 않았다면 그 작은--nginx 플래그가 가상 호스트 구성을 수정합니다. 응. 모든 HTTP 트래픽을 HTTPS로 리디렉션하도록 인증서를 설정할 때 옵션이 있으며 분명히 '확실히'라고 말했습니다.

그리고 리디렉션 루프를 큐에 넣습니다. 사이트 모니터 이메일 폭주, 트위터 '사이트 다운' DM…



모든 것이 순조롭게 진행되고 있습니다!
/etc/nginx/sites-available/petetasker.com 가상 호스트 선언에서 다음 블록을 제거하여 이 문제를 해결했습니다.

if ($host = petetasker.com) {
    return 301 https://$host$request_uri;
} # managed by Certbot


그리고 더 간단한 리디렉션 블록을 파일 상단에 추가하여 정말 명확하게 하십시오.

server{
        listen 80;
        server_name petetasker.com;
        return 301 https://$server_name$request_uri;
}


그래서 여기서 교훈은 무엇입니까? 교훈은 당신이 '자동으로' 당신을 위해 무언가를 할 도구를 사용하고 있고 그것이 사실이 되기에는 너무 좋게 들린다면 아마도 그럴 것이라는 것입니다.

최종 가상 호스트 블록이 어떻게 생겼는지 궁금하다면:

server{
        listen 80;
        server_name petetasker.com;
        return 301 https://$server_name$request_uri;
}
server {

        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name petetasker.com www.petetasker.com;

        server_name petetasker.com www.petetasker.com;
        root /usr/share/nginx/sites/petetasker.com;
        index index.php index.html;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/petetasker.com-0001/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/petetasker.com-0001/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}


게시물 Nginx, Let’s Encrypt and taking my own server down 😢🔥 Database Critical 🔥에 처음 나타났습니다.

좋은 웹페이지 즐겨찾기