Certbot: ์˜ค๋ฅ˜ : [::] : 443์— ๋Œ€ํ•œ ์ˆ˜์‹  ์˜ต์…˜์ด ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 02์›” 07์ผ  ยท  30์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: certbot/certbot

๋‚ด ์šด์˜ ์ฒด์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค (๋ฒ„์ „ ํฌํ•จ).

Ubuntu 16.04

(certbot-auto, OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž, pip ๋“ฑ)์„ ์‚ฌ์šฉํ•˜์—ฌ Certbot์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

sudo apt-get install python-certbot-nginx

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถœ๋ ฅ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/example.online:29

Certbot์˜ ๋™์ž‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ์ œ๊ฐ€ ์˜ˆ์ƒํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๊ฐ€ ์—†์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋‚ด๊ฐ€ ๊ตฌ์„ฑ์ค‘์ธ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๊ด€๋ จ nginx ์„œ๋ฒ„ ๋ธ”๋ก ๋˜๋Š” Apache ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

server {
  listen 80;
  listen [::]:80;

  server_name example.online;

  root /home/example/deploy;
  index index.html;

  location / {
    try_files $uri $uri/ =404;
  }
}

server {
  listen 80;
  listen [::]:80;
  server_name www.example.online;
  return 301 $scheme://example.online$request_uri;
}

nginx bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. certbot --redirect --nginx -d readacted.com -d www.redacted.com

๋‚ด ์›๋ž˜ conf ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    server {
        server_name redacted.com;
        location / {
        root   /home/redacted/www;
        index  index.html;
      }
    }

    server {
        listen 80;
        listen [::]:80;
        server_name www.redacted.com;
        return 301 $scheme://redacted.com$request_uri;
    }

/var/log/letsencrypt/letsencrypt.log์— ๋”ฐ๋ฅด๋ฉด certbot์ด ์ด๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    server {
        server_name redacted.com;
        location / {
        root   /home/redacted/www;
        index  index.html;
      }

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/redacted.com-0001/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/redacted.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

    }

    server {
        listen 80;
        listen [::]:80;
        server_name www.redacted.com;
        return 301 $scheme://redacted.com$request_uri;

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/www.redacted.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/www.redacted.com/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๋Š” listen [::]:443 ssl ipv6only=on; # managed by Certbot ๋ผ์ธ์—์„œ ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ :

nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/redacted.com:23

๋น ๋ฅธ Google์€ 2010 ๋…„๋ถ€ํ„ฐ์ด ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค.

http://www.serverphorums.com/read.php?5 , 203912

์ด๋Š” nginx๊ฐ€ ๋‚ด๋ถ€ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ํ•จ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” nginx ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋‹ค์Œ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

    server {
        server_name redacted.com;
        location / {
        root   /home/redacted/www;
        index  index.html;
      }

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/redacted.com-0001/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/redacted.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

    }

    server {
        listen 80;
        listen [::]:80;
        server_name www.redacted.com;
        return 301 http://redacted.com$request_uri;

        listen [::]:443; # manually changed
        ssl on;  #manually changed
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/www.redacted.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/www.redacted.com/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

    }

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ด์ƒ์ ์œผ๋กœ๋Š” ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  30 ๋Œ“๊ธ€

@iamdubx ๋‹น์‹ ์ด ์ด๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ ... ๋‚ด ๊ธฐ๋ณธ ์‚ฌ์ดํŠธ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ์ง€์ • ํ•˜์œ„ ๋„๋ฉ”์ธ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์„ ์žก๋Š” ๊ตฌ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

server {
  listen 80;
  listen [::]:80;

  root /home/primarydomain/public;
  index index.html index.htm;

  server_name domain1.com *.domain1.com domain2.com *.domain2.com domain3.com *.domain3.com domain4.com *.domain4.com;

  return 302 $scheme://primarydomain.com$request_uri;

  access_log /var/log/nginx/others.access.log;
  error_log /var/log/nginx/others.error.log;

  location / {
    try_files $uri $uri/ /index.html =404;
  }
}

์ด ๊ตฌ์„ฑ์— ๋Œ€ํ•ด nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/others:19 ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

์šด์˜์ฒด์ œ : Ubuntu 16.04. ๋„์›€์ด ํ•„์š”ํ•˜์„ธ์š”?

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. certbot --redirect --nginx -d readacted.com -d www.redacted.com

๋‚ด ์›๋ž˜ conf ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    server {
        server_name redacted.com;
        location / {
        root   /home/redacted/www;
        index  index.html;
      }
    }

    server {
        listen 80;
        listen [::]:80;
        server_name www.redacted.com;
        return 301 $scheme://redacted.com$request_uri;
    }

/var/log/letsencrypt/letsencrypt.log์— ๋”ฐ๋ฅด๋ฉด certbot์ด ์ด๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    server {
        server_name redacted.com;
        location / {
        root   /home/redacted/www;
        index  index.html;
      }

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/redacted.com-0001/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/redacted.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

    }

    server {
        listen 80;
        listen [::]:80;
        server_name www.redacted.com;
        return 301 $scheme://redacted.com$request_uri;

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/www.redacted.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/www.redacted.com/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๋Š” listen [::]:443 ssl ipv6only=on; # managed by Certbot ๋ผ์ธ์—์„œ ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ :

nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/redacted.com:23

๋น ๋ฅธ Google์€ 2010 ๋…„๋ถ€ํ„ฐ์ด ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค.

http://www.serverphorums.com/read.php?5 , 203912

์ด๋Š” nginx๊ฐ€ ๋‚ด๋ถ€ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ํ•จ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” nginx ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋‹ค์Œ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

    server {
        server_name redacted.com;
        location / {
        root   /home/redacted/www;
        index  index.html;
      }

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/redacted.com-0001/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/redacted.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

    }

    server {
        listen 80;
        listen [::]:80;
        server_name www.redacted.com;
        return 301 http://redacted.com$request_uri;

        listen [::]:443; # manually changed
        ssl on;  #manually changed
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/www.redacted.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/www.redacted.com/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

    }

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ด์ƒ์ ์œผ๋กœ๋Š” ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

@ohemorange , ์ด๊ฒƒ์„ ์ถ”์ ํ•˜๋Š” ๊ธฐ์กด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ต์ˆ™ํ•œ ๋Š๋‚Œ์ด ๋“ค์ง€๋งŒ ์ด์ „์— ์‚ดํŽด๋ณธ ๋‚ด์šฉ์ธ์ง€ ์•„๋‹Œ์ง€๋Š” ๊ธฐ์–ต์ด ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ณธ ์ ์ด ์—†๋‹ค. IPv6๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์›๋ž˜ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ • ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ธˆ IPv6 ์ง€์›์„ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ์น˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. IPv6 ์šฉ Nginx์—์„œ ์•„์ง ์ˆ˜์ •๋˜์ง€ ์•Š์€ ์ด์œ ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ssl on ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ ํ•  ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค. ๋‘˜ ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋‘˜ ๋ชจ๋‘์—์„œ ipv6only=on ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

@joohoi , ์šฐ๋ฆฌ๋Š” ipv6only=on ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณ ์œ  ํ•œ ์ฃผ์†Œ ํ–‰๋‹น ํ•œ ๋ฒˆ๋งŒ ์ž…๋ ฅํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋„๋ฉ”์ธ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ ์•˜์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋„๋ฉ”์ธ์—์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

Certbot์ด ์–ด๋–ค ์ด์œ ๋กœ ipv6only ์ง€์‹œ๋ฌธ์„ ์™„์ „ํžˆ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ipv6only์˜ ๋™์ž‘๊ณผ ๊ธฐ๋ณธ๊ฐ’์ด ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์˜ค๋ž˜๋œ Nginx ๋ฒ„์ „์—์„œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆ์พŒํ•œ ํŒจ์น˜์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณง ์ ์ ˆํ•œ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์ง€๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

--- /usr/lib/python3/dist-packages/certbot_nginx/configurator.py.orig   2018-02-14 18:38:30.380863045 +0000
+++ /usr/lib/python3/dist-packages/certbot_nginx/configurator.py    2018-02-14 18:38:01.501018553 +0000
@@ -507,10 +507,10 @@ class NginxConfigurator(common.Installer
                           '[::]:{0}'.format(self.config.tls_sni_01_port),
                           ' ',
                           'ssl']
-            if not ipv6info[1]:
-                # ipv6only=on is absent in global config
-                ipv6_block.append(' ')
-                ipv6_block.append('ipv6only=on')
+            #if not ipv6info[1]:
+            #    # ipv6only=on is absent in global config
+            #    ipv6_block.append(' ')
+            #    ipv6_block.append('ipv6only=on')

         if vhost.ipv4_enabled():
             ipv4_block = ['\n    ',
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial
$ nginx -V
nginx version: nginx/1.10.3 (Ubuntu)
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
$ apt show python-certbot-nginx
Package: python-certbot-nginx
Version: 0.21.1-1+ubuntu16.04.1+certbot+1
Priority: optional
Section: oldlibs
Maintainer: Debian Let's Encrypt <[email protected]>
Installed-Size: 9,216 B
Depends: python3-certbot-nginx
Download-Size: 2,470 B
APT-Manual-Installed: yes
APT-Sources: http://ppa.launchpad.net/certbot/certbot/ubuntu xenial/main amd64 Packages
Description: transitional dummy package
 This is a transitional dummy package for the migration of certbot
 from python2 to python3.  It can be safely removed.

๊ฐ™์€ ๋ฌธ์ œ. ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ?

ํ…์ŠคํŠธ ๋ฒฝ์œผ๋กœ ์ธํ•ด ๋ฏธ์•ˆํ•˜์ง€๋งŒ ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ ค๋ฉด :
ipv6only ์˜ต์…˜์€ ์†Œ์ผ“ ๋‹น ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ˆ˜์‹  ๋ช…๋ น๋ฌธ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์†Œ์ผ“์˜ ์„œ๋ฒ„ ๊ตฌ์„ฑ์—์„œ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ Nginx๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

server {
    ...
    server_name first.example.org;
    listen [::]:80 ipv6only=on;
    listen 80;
}ย 
server {
    ...
    server_name second.example.org;
    listen [::]:80 ipv6only=on;
    listen 80;
}

์ตœ์‹  ๋ฒ„์ „์˜ Nginx์—์„œ๋Š” ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์ด ipv6only=on ์ด๋ฏ€๋กœ ipv6only ์„ค์ •์„ ์™„์ „ํžˆ ์ƒ๋žตํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ์€ Nginx ๋ฒ„์ „> = 1.3.4์—์„œ ์œ ํšจํ•˜๊ณ  ์ž‘๋™ํ•˜๋Š” ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.

server {
    ...
    server_name first.example.org;
    listen [::]:80;
    listen 80;
} 
server {
    ...
    server_name second.example.org;
    listen [::]:80;
    listen 80;
}

๊ทธ๋Ÿฌ๋‚˜ 1.3.4 ์ด์ „์˜ Nginx ๋ฒ„์ „์—์„œ ipv6only ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ipv6only=off ์ด๋ฏ€๋กœ ์ด์ „ ๋ฒ„์ „์€ ๋‹ค์Œ ๊ตฌ์„ฑ์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

server {
    ...
    server_name first.example.org;
    listen [::]:80;
    listen 80;
} 

ํ˜„์žฌ ๋ฐฐํฌ ํŒจํ‚ค์ง•์˜ ์ƒํ™ฉ์€ ์ด์ „ ๋ฒ„์ „์˜ Nginx์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์œ ์ผํ•œ ๋ฐฐํฌํŒ์€ ๊ธฐ๋ณธ ์ €์žฅ์†Œ์—์„œ Nginx ๋ฒ„์ „ 1.2.1์„ ์ œ๊ณตํ•˜๋Š” Debian Wheezy (Debian 7)๋ฟ์ž…๋‹ˆ๋‹ค.

Certbot์—์„œ ipv6only ํƒ์ง€ ๋ฐ ์„ค์ •์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋ฉด Debian Wheezy์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ Wheezy์˜ EOL ๋‚ ์งœ๋Š” 2018 ๋…„ 5 ์›”๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ Certbot ์ฝ”๋“œ์—์„œ ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ๋ณต์žก์„ฑ์„ ์™„์ „ํžˆ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Certbot์˜ ํ˜„์žฌ ๊ธฐ๋Šฅ์€ ์ „์ฒด Nginx ๊ตฌ์„ฑ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์—ฌ server{} ๋ธ”๋ก ์ค‘ ํ•˜๋‚˜์— ์ด๋ฏธ์žˆ๋Š” ipv6only=on ์„ค์ •์„ ๊ฐ์ง€ํ•˜๊ณ  ์ถ”๊ฐ€ ํ•  ๊ฒฝ์šฐ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ’์„ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ Certbot์€์ด๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” Certbot์ด ์‚ฌ์šฉ์ž ํ˜„์žฌ ๊ตฌ์„ฑ์˜ ์ผ๋ถ€ ๋ธ”๋ก์—์„œ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ง€ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์„ฑ์ค‘์ธ server{} ๋ธ”๋ก์— ์ถ”๊ฐ€ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ipv6only=on ๋ณ€์ˆ˜์˜ ํƒ์ง€๋ฅผ ๊ฐœ์„  ํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ฐฉ์‹์œผ๋กœ Certbot์ด ์‹คํŒจํ•˜๋Š” ์ „์ฒด ์˜ˆ์ œ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋Š” ๋Œ€์‹  ๊ทธ๋ ‡๊ฒŒํ•ฉ๋‹ˆ๋‹ค.

ํŒจ์น˜ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. FWIW, ์ €๋Š” Ubuntu 17์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ฑฐํ•ด์•ผํ–ˆ๋‹ค

listen [::]:80;
listen 80;

์ž‘๋™ํ•˜๊ฒŒํ•˜๋ ค๋ฉด

https://github.com/chilion- ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ํ’€์ด:

listen [::]:80;
listen 80;

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ Ubuntu ์„œ๋ฒ„์— ๋‘ ๊ฐœ์˜ ๋„๋ฉ”์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฐฉ๊ธˆ ์ƒˆ๋กœ์šด ๋ชจ๋“  ์„œ๋ฒ„์— nginx๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

listen [::]:80 ์ œ๊ฑฐํ–ˆ์ง€๋งŒ listen 80; ๋‚จ๊ฒจ๋‘๋ฉด ๊ธฐ๋ณธ์ด ์•„๋‹Œ ๋„๋ฉ”์ธ์— ์„ค์น˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์œ„ ๋„๋ฉ”์ธ ์„ค์ •์—์„œ listen [::] : 443 ์ฃผ์„์„ ๋‹ฌ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์•„

๋ฐฉ๊ธˆ์ด ๋ฌธ์ œ์— ๋ถ€๋”ช ํ˜”์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ listen ์ง€์‹œ๋ฌธ ๋ฐ ipv6only ์„ ์ดํ•ดํ•˜๋ ค๋Š” ๋ชจ๋“  ๊ธฐ๊ด€.

์ด ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ•๋ ฅํžˆ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.์ด ๊ธฐ์‚ฌ๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์›น์—์„œ ์ฐพ์€ ๋ชจ๋“  ๋‹ค๋ฅธ ์กฐ์–ธ์œผ๋กœ ๋ฌด์—‡์„ํ•ด์•ผํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

https://stefanchrist.eu/blog/2015_01_21/Using%20ipv6only%20in%20Nginx.xhtml

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์˜์ด ์ธ์šฉ๋ฌธ์€ ์ €์—๊ฒŒ ์ „๊ตฌ์˜ ์ˆœ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ssl ํ”Œ๋ž˜๊ทธ์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ssl ํ”Œ๋ž˜๊ทธ๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„ ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์›ํ•˜๋Š”๋Œ€๋กœ ์ผœ๊ณ  ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ipv6only ํ”Œ๋ž˜๊ทธ๋Š” ํฌํŠธ (๋ฐ ์ฃผ์†Œ) ๋‹น ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์ˆ˜์‹  ์ง€์‹œ๋ฌธ my์—๋งŒ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ์ด ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์„œ๋ฒ„ ์ปจํ…์ŠคํŠธ์— ๋Œ€ํ•ด ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜๋ฉด nginx ๋ฐ๋ชฌ์ด ์‹œ์ž‘๋˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์˜ค๋ฅ˜ ๋กœ๊ทธ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

python ์ œ๊ฑฐ ํ›„ ์—ฌ์ „ํžˆ ์กด์žฌ ํ•˜๋ฉฐ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. certbot ์–ด๋”˜๊ฐ€์— ์˜ค๋ฅ˜

์ด ์ค„์— ์ฃผ์„์„ ๋‹ฌ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

server {
        listen  443 ssl http2;
#        listen [::]:443 ssl http2 ipv6only=on;


์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์˜ ๊ฒฝ์šฐ

๋Œ€์‹ ์—
์ฒญ์ทจ [::] : 443 ssl http2 ipv6only = on;

์‚ฌ์šฉํ•˜๋‹ค
์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์„ธ์š”. com : 443 ssl http2 ipv6only = on;

๋ชจ๋“  ์„œ๋ฒ„ ๋ธ”๋ก์—์„œ listen ์ง€์‹œ๋ฌธ์„ ์ƒ๋žตํ•˜์‹ญ์‹œ์˜ค.

์ด ์˜ค๋ฅ˜๋Š” ๋™์ผํ•œ ํฌํŠธ๋กœ ๋™์ผํ•œ ๋„๋ฉ”์ธ์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๋Š” ๋‘ ๊ฐœ์˜ ์„œ๋ฒ„ ๋ธ”๋ก์ด์žˆ์„ ๋•Œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
์ค‘๋ณต ๋ฆฌ์Šค๋„ˆ์— ๋Œ€ํ•œ ์‚ฌ์ดํŠธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํด๋”์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ œ ๊ฒฝ์šฐ์—๋Š” certbot์ด ๊ธฐ๋ณธ ํŒŒ์ผ์—์„œ 443์— ๋Œ€ํ•œ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋ณต์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์˜ Certbot์œผ๋กœ์ด๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ์œ„ํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜์ค‘์— ์“ธ์“ธํ•œ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด์ด ํ‹ฐ์ผ“์„ ์ฐพ์„ ์ˆ˜์žˆ๋Š” ๋ชจํ—˜๊ฐ€๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ณณ์— ipv6only=on ๊ฐ€ ์—†์„ ๋•Œ ์™œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์— reuseport ์žˆ๋Š” ๊ฒฝ์šฐ ๋™์ผํ•œ ์˜ค๋ฅ˜ / ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ธ์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค, ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. nginx ๋ฌธ์„œ ์— ๋”ฐ๋ฅด๋ฉด listen ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์ง€๋งŒ ipv6only ๋งŒ "์‹œ์ž‘์‹œ ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ค„์ด ๋‚˜๋จธ์ง€ ๋งค๊ฐœ ๋ณ€์ˆ˜์—์„œ ๋ˆ„๋ฝ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ ๊นŒ? ๋‚˜๋Š” ์—…์ŠคํŠธ๋ฆผ์—์„œ์ด ๋™์ž‘์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ตœ์„ ์˜ ์กฐ์น˜ ์ผ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ถˆํ–‰ํžˆ๋„ ๋ฆฌ๋ˆ…์Šค ์†Œ์ผ“์— ๋Œ€ํ•œ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์˜ต์…˜์ด ํ•œ ๋ฒˆ๋งŒ ์„ค์ • ๋  ์ˆ˜์žˆ๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์ ์ ˆํ•œ ์˜๊ฒฌ์„ ์ œ์‹œ ํ•  ์ˆ˜ ์—†์ง€๋งŒ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒŒ์‹œ๋ฌผ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/

๋‚ด๊ฐ€ ์•„๋Š” ๊ฒƒ์€ ipv6only ์ฒ˜๋Ÿผ reuseport ๋„ ํŠน์ • ํฌํŠธ ๋‹น ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•˜๋‚˜์˜ ๋ฆฌ์Šค๋„ˆ ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ ์ด๊ฒƒ์ด ipv6only ์™€ ์šฐ์—ฐํžˆ ์ถฉ๋Œํ•˜๋Š”์ง€ (๋” ๋‚˜์€ ๋‹จ์–ด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—), ๋‚˜๋Š” ๋‹จ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ certbot์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ๋ฌด์ต ํ•  ๋•Œ ipv6only=on ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

2012 ๋…„ ์— ์ถœ์‹œ ๋œ nginx 1.3.4 ์ดํ›„๋กœ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ธฐ์ˆ ์ ์œผ๋กœ EOL์ž…๋‹ˆ๋‹ค.

์ตœ์†Œํ•œ ๋ฒ„์ „ ํ™•์ธ์ด ์žˆ์–ด์•ผํ•˜๋ฉฐ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— nginx < 1.3.4 ๊ฒฝ์šฐ์—๋งŒ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Certbot์—์„œ๋Š” ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋ธ”๋ก์„ ๋งŒ๋“ค ๋•Œ ๊ธฐ์กด ๊ธฐ๋ณธ ์„œ๋ฒ„ ๋ธ”๋ก ๋˜๋Š” ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ์„œ๋ฒ„ ๋ธ”๋ก์—์„œ ์ผ๋ถ€ ์ง€์‹œ๋ฌธ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ•ด๋‹น ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์ˆ˜์‹  ์ง€์‹œ๋ฌธ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Nginx๊ฐ€ ํ”„๋ก์‹œ ๋˜๋Š” ๋‹ค๋ฅธ ์œ ํ˜•์˜ ํฌํŠธ ์ „๋‹ฌ ๋’ค์— ์žˆ๋”๋ผ๋„ Certbot์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋ณต ๋œ ์„œ๋ฒ„ ๋ธ”๋ก์—์„œ ipv6only=on ๋ฅผ ๋ช…์‹œ ์ ์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ์ด์œ ๋Š” ๋ฌธ์„œ์— ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณต์ œ ํ•  ์ˆ˜์—†๋Š” ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋“  ์„œ๋ฒ„ ๋ธ”๋ก์— ํŠน๋ณ„ํžˆ ์›ํ•˜๋Š” ๋‹ค๋ฅธ ์˜ต์…˜์€ ๊ทธ๋Œ€๋กœ ๋‘ก๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ์˜ต์…˜์ด ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ์ง€, ์–ด๋–ค ๋ฌธ์„œ๊ฐ€ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฉฐ, ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์šฐ๋ฆฌ์—๊ฒŒ ์˜ค๋Š” ์‚ฌ๋žŒ๋“ค์„ ํ†ตํ•ด์„œ๋งŒ ๋ฐœ๊ฒฌ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฒƒ์„ ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @joohoi
๊ท€ํ•˜์˜ ์„ค๋ช… ๋ฐ ์†”๋ฃจ์…˜์€ nginx ๋ฒ„์ „ 1.18.0์˜ Ubuntu 20์—์„œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

2 VPS๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค .1์€ Ubuntu๊ฐ€ Nginx 1.10์„ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Centos๊ฐ€ Nginx 1.16์„ ์‹คํ–‰ ํ•˜๋ฉฐ์ด ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ฌ˜ํ•œ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰