{"id":1781,"date":"2019-03-11T17:40:16","date_gmt":"2019-03-11T08:40:16","guid":{"rendered":"http:\/\/akal.co.kr\/?p=1781"},"modified":"2021-06-22T15:00:34","modified_gmt":"2021-06-22T06:00:34","slug":"nginx-%eb%a6%ac%eb%b2%84%ec%8a%a4%ed%94%84%eb%a1%9d%ec%8b%9c-httpsssl-%ec%a0%81%ec%9a%a9%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/akal.co.kr\/?p=1781","title":{"rendered":"nginX + \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc + https(ssl) \uc801\uc6a9\ud558\uae30"},"content":{"rendered":"<p><span class=\"dropcap\">\uc77c<\/span>\uc804\uc5d0 nginX\uc5d0\uc11c \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc\ub97c \uad6c\ud604\ud558\ub294 \uae00\uc744 \ube14\ub85c\uae45 \ud55c\uc801\uc774 \uc788\uc5c8\ub294\ub370 \ucd5c\uadfc\uc5d0 \ubaa8\ub450 https(ssl)\ub85c \ubc14\ub00c\uba74\uc11c Reverse Proxy\uc5d0\uc11c\ub3c4 \uc801\uc6a9\ud560 \ubc29\ubc95\uc744 \ucc3e\uc558\uc2b5\ub2c8\ub2e4. \uc81c \uc5c5\ubb34\uac00 \uc804\uc0b0\uc5c5\uc774 \uc544\ub2c8\ub2e4 \ubcf4\ub2c8 \uc801\uc6a9\ud574\uc57c\uc9c0 \ud558\ub358\uac8c \uc2dc\uac04\uc774 \uc624\ub798 \uc9c0\ub098\ubc84\ub838\uc9c0\ub9cc 2\uc6d4\uc774 \uc9c0\ub098 \uc7a0\uc2dc \uc9ec\uc774 \ub098\uc11c \ud558\ub8e8\ub97c \ud22c\uc790\ud574 \uc131\uacf5\ud588\uc2b5\ub2c8\ub2e4. \uc5ed\uc2dc\ub098 \uc774\ubc88\uc5d0\ub3c4 \uac1c\ub150\uc744 \uc7a1\uc73c\ub2c8 \uc26c\uc6e0\ub294\ub370, \uad6c\uae00\ub9c1\uc744 \uc544\ubb34\ub9ac \ud574\ub3c4 \uc81c\uac00 \uc6d0\ud558\ub294 \ub2f5\uc740 \ub098\uc640 \uc788\uc9c0 \uc54a\uc544\uc11c \ub9ce\uc774 \ud5e4\uba68\ub124\uc694.<\/p>\n<div class=\"tbarh2\">nginX \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc \uac1c\ub150\uc7a1\uae30<\/div>\n<p>\uc77c\ub2e8 nginX\uc5d0\uc11c \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc\uc5d0 \ub300\ud55c \uac1c\ub150\uc744 \ubaa8\ub974\uc2dc\uac70\ub098 \uac04\ub2e8\ud558\uac8c \uac1c\ub150\uc744 \uc7a1\uace0 \uc2f6\uc73c\uc2dc\uba74 \uc544\ub798\uc758 \ub0b4\uc6a9\uc744 \ucc38\uace0\ud574\uc8fc\uc138\uc694. \uc544\ub798 \uae30\uc0ac\ub294 \uc18c\uaddc\ubaa8 \uc18c\ud638\ub098 \uac1c\uc778\uc744 \uc704\ud55c \uac1c\ub150 \ub3c4\uc2dd\ud654\uac00 \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ubb3c\ub860 \ub300\ud615 \uc2dc\uc2a4\ud15c\uc5d0 \uc801\uc6a9\ud560\ub54c\ub3c4 \uae30\ubcf8\uc740 \uac19\uaca0\uc9c0\ub9cc\uc694.<br \/>https:\/\/akal.co.kr\/?p=1173<\/p>\n<div class=\"tbarh2\">nginX\uc5d0\uc11c SSL\uc744 \uc801\uc6a9\ud55c \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc<\/div>\n<p>\uc0ac\uc6a9\ub41c \uc2dc\uc2a4\ud15c : Linux Mint 19 tara<br \/>nginX \ubc84\uc804 : nginx\/1.14.0<br \/>SSL (https) \uc801\uc6a9 : Letsencrypt\uc5d0\uc11c certbot\uc744 \uc774\uc6a9\ud558\uc5ec \uad6c\ucd95<br \/>\ub450\ub300 \ubaa8\ub450 \uac19\uc740 \uc2dc\uc2a4\ud15c\uc73c\ub85c \uc0ac\uc6a9\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<br \/>certbot\uc744 \uc774\uc6a9\ud55c ssl \uad6c\ucd95\uc740 \uc778\ud130\ub137\uc5d0 \uc790\ub8cc\uac00 \uc6cc\ub099 \ub9ce\uc544\uc11c \uc5ec\uae30\uc11c\ub294 \ub2e4\ub8e8\uc9c0 \uc54a\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc544\uc8fc \uac04\ub2e8\ud558\uace0 \uc27d\uac8c \uc801\uc6a9\ub418\uae30 \ub54c\ubb38\uc5d0 \uc778\ud130\ub137 \uac80\uc0c9\ub9cc \ud574\ubcf4\uc2dc\uba74 \ub420 \uac83 \uac19\uc544\uc694.<\/p>\n<div class=\"tbarh3\">1. nginX\uc5d0\uc11c SSL\uc744 \uc801\uc6a9\ud55c \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc \ub3c4\uc2dd\ud654<\/div>\n<p><a href=\"http:\/\/akal.co.kr\/wordpress\/wp-content\/uploads\/2019\/03\/reverseproxy_ssl.png\" data-rel=\"lightbox-image-0\" data-rl_title=\"reverseproxy_ssl\" data-rl_caption=\"\" title=\"reverseproxy_ssl\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1782\" src=\"http:\/\/akal.co.kr\/wordpress\/wp-content\/uploads\/2019\/03\/reverseproxy_ssl.png\" alt=\"\" width=\"720\" height=\"340\" srcset=\"https:\/\/akal.co.kr\/wordpress\/wp-content\/uploads\/2019\/03\/reverseproxy_ssl.png 720w, https:\/\/akal.co.kr\/wordpress\/wp-content\/uploads\/2019\/03\/reverseproxy_ssl-300x142.png 300w, https:\/\/akal.co.kr\/wordpress\/wp-content\/uploads\/2019\/03\/reverseproxy_ssl-520x245.png 520w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>\ub3c4\uc2dd\ud654 \uc2dc\ud0a4\ub2c8 \uac1c\ub150\ub3c4 \uac04\ub2e8\ud558\uac8c \uc7a1\ud788\uace0 \uc2e4\uc81c \uc801\uc6a9\ub3c4 \uc27d\uac8c \ud558\uc2e4\uc218 \uc788\uaca0\uc8e0 ? \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc \uc11c\ubc84\uc5d0\ub294 SSL\uc744 \uc801\uc6a9\ud558\uace0 \ud558\uc704\uc11c\ubc84\ub4e4\uc740 SSL\uc744 \uc801\uc6a9\ud558\uc9c0 \uc54a\uc740 \uc0c1\ud0dc http\ub85c \ud1b5\uc2e0\ud558\uba74 \ub429\ub2c8\ub2e4. \uadf8\ub798\ub3c4 \uc798 \ubaa8\ub974\uc2dc\ub294 \ubd84\ub4e4\uc740 \uc544\ub798\uc758 \uc124\uc815\uc744 \ucc38\uace0\ud574\uc11c \uc791\uc5c5\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<div class=\"tbarh3\">2. nginX \uc124\uc815<\/div>\n<div class=\"tbarh4\">1. \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc \uc11c\ubc84 nginX \uc124\uc815<\/div>\n<div>\u00a0<\/div>\n<div>\n<pre><code class=\"language-nginx\">server { \n    server_name test.eilsin.co.kr;\n\n    location \/ { \n        proxy_redirect off; \n        proxy_pass_header Server; \n        proxy_set_header Host $http_host; \n        proxy_set_header X-Real-IP $remote_addr; \n        proxy_set_header X-Forwarded-Proto $scheme; \n        proxy_pass http:\/\/192.168.0.9\/; \n        proxy_redirect off; \n        proxy_http_version 1.1; \n    } \n\n    listen 443 ssl;\n    ssl_certificate \/etc\/letsencrypt\/live\/\uacbd\ub85c\uba85\/fullchain.pem; # managed by Certbot\n    ssl_certificate_key \/etc\/letsencrypt\/live\/\uacbd\ub85c\uba85\/privkey.pem; # managed by Certbot\n    include \/etc\/letsencrypt\/options-ssl-nginx.conf; # managed by Certbot \n    ssl_dhparam \/etc\/letsencrypt\/ssl-dhparams.pem; # managed by Certbot \n} \n\nserver { \n    if ($host = test.eilsin.co.kr) { \n        return 301 https:\/\/$host$request_uri; \n    } # managed by Certbot \n\n    listen 80;\n    server_name test.eilsin.co.kr;\n    return 404; # managed by Certbot\n}<\/code><\/pre>\n<\/div>\n<p>Certbot\uc5d0\uc11c nginX\uc5d0 \uc801\uc6a9\ud558\uba74 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ub418\ub294 redirection \uc124\uc815\uc744 \ucc38\uace0\ub85c \uc124\uc815\ud588\uc2b5\ub2c8\ub2e4. \ud558\ub2e8\ubd80\uc5d0 \uc788\ub294 \uc124\uc815\uc774 certbot \uc5d0\uc11c \uc790\ub3d9\uc0dd\uc131\ub418\ub294 80\ubc88 \ud3ec\ud2b8\ub85c \ub4e4\uc5b4\uc628 http\uc694\uccad\ub3c4 443\ubc88 \ud3ec\ud2b8 ssl\ub85c \uc7ac\uc9c0\uc815\uc744 \ud574\uc8fc \uc124\uc815\uc785\ub2c8\ub2e4.<br \/>location \/ { &#8230; } \ub0b4\uc6a9\uc774 \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc \uc124\uc815 \uc785\ub2c8\ub2e4. \ub0b4\ubd80\uc544\uc774\ud53c\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\uc73c\ubbc0\ub85c http\ub85c \ud574\ub2f9 \ub0b4\ubd80\uc544\uc774\ud53c\ub97c \uc9c0\uc815\ud574\uc8fc\uc2dc\uba74 \ub429\ub2c8\ub2e4.<br \/>ssl \uad00\ub828 \uc124\uc815\uc740 letsencrypt\ub97c \uc0ac\uc6a9\ud558\uba74 \uc0dd\uc131\ub418\ub294 ssl key\ub97c \uc9c0\uc815\ud574\uc8fc\uc2dc\uba74 \ub418\uace0\uc694. certbot\uc744 \uc774\uc6a9\ud558\uc2dc\uba74 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud574\uc8fc\ub294 \ubd80\ubd84\uc785\ub2c8\ub2e4 \ud83d\ude42<br \/>\uc774\ub85c\uc368 \uac04\ub2e8\ud558\uac8c \ud558\ub2e8\uc5d0 \uc788\ub294 \uc11c\ubc84\ub85c \uc801\uc6a9\ub420 \uc218 \uc788\uac8c \uc124\uc815\uc744 \ub9c8\ucce4\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"tbarh3\">2. \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc \ud558\ub2e8\uc11c\ubc84 \uc124\uc815<\/div>\n<pre class=\"nums:false nums-toggle:false whitespace-before:2 whitespace-after:2 lang:default highlight:0 decode:true \">server {\n        listen 80;\n\n        server_name test.eilsin.co.kr;\n\n        charset utf-8;\n\n        root \/home\/ilsin\/www\/intranet;\n        index index.html index.php index.htm;\n\n        location \/ {\n                try_files $uri $uri\/ \/index.php?q=$uri&amp;$args;\n        }\n\n        location ~ \\.(php|html|htm)$ {\n                fastcgi_pass unix:\/var\/run\/php\/php7.2-fpm.sock;\n                fastcgi_index index.php;\n                fastcgi_split_path_info ^(.+\\.php)(.*)$;\n                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n                include fastcgi_params;\n        }\n}<\/pre>\n<p>\ud558\ub2e8\uc5d0 \uc788\ub294 \uc11c\ubc84\ub294 \uadf8\uc800 http\ub85c \uc124\uc815\ud558\uace0 PHP\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uc815\ub41c \ub0b4\uc6a9\uc785\ub2c8\ub2e4. \uc6cc\ub099 \uae30\ubcf8\uc801\uc778 \ub0b4\uc6a9\uc774\ub77c \uc124\uba85\ub4dc\ub9b4\uac8c \uc5c6\ub124\uc694. ^-^;<\/p>\n<p>\uace0\ubbfc\ud588\ub358 \uc81c\uac00 \ubc14\ubcf4\uc2a4\ub7fd\uac8c \ub290\uaef4\uc9c8 \uc815\ub3c4\ub85c \uac04\ub2e8\ud55c \ub0b4\uc6a9\uc774\ub77c \ud2b9\ubcc4\ud558\uac8c \uc124\uba85\ub4dc\ub9b4 \ubd80\ubd84\uc740 \uc5c6\uc2b5\ub2c8\ub2e4. \uadf8\uc800 \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc \uc11c\ubc84\uac00 SSL\uae4c\uc9c0 \ub2f4\ub2f9\ud574\uc8fc\uba74 \ud558\ub2e8\uc758 \uc11c\ubc84\ub4e4\uc740 \uadf8\ub0e5 http\ub85c \uc5ee\uc5b4\uc8fc\uba74 \uc544\uc8fc \uc27d\uac8c \uc11c\ubc84\ub2e8\uc774 \uad6c\ucd95\ub41c\ub2e4\ub294 \uac70\uc8e0. \uadf8\ub798\ub3c4 \uc5ed\uc2dc\ub098 \uc0dd\uc5c5\uc73c\ub85c \ud558\ub294\uac8c \uc544\ub2c8\ub2e4 \ubcf4\ub2c8 \uae30\ub85d\uc73c\ub85c \ub0a8\uaca8\ub450\uc9c0 \uc54a\uc73c\uba74 \uc800\ub3c4 \uc798 \uc78a\uc5b4\uba39\ub294 \ud3b8\uc774\ub77c ^-^; \uc774\uc81c https\uac00 \uac70\uc758 \uae30\ubcf8 \uc124\uc815\uc73c\ub85c \ub418\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \ud639\uc2dc \uc5b4\ub824\uc6c0\uc744 \uacaa\uace0 \uc788\ub294 \ubd84\ub4e4\uc774 \uacc4\uc2dc\ub2e4\uba74 \uc870\uae08\uc774\ub098\ub9c8 \ub3c4\uc6c0\uc774 \ub418\uba74 \uc88b\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>\uc77c\uc804\uc5d0 nginX\uc5d0\uc11c \ub9ac\ubc84\uc2a4\ud504\ub85d\uc2dc\ub97c \uad6c\ud604\ud558\ub294 \uae00\uc744 \ube14\ub85c\uae45 \ud55c\uc801\uc774 \uc788\uc5c8\ub294\ub370 \ucd5c\uadfc\uc5d0 \ubaa8\ub450 https(ssl)\ub85c \ubc14\ub00c\uba74\uc11c Reverse Proxy\uc5d0\uc11c\ub3c4 \uc801\uc6a9\ud560 \ubc29\ubc95\uc744 \ucc3e\uc558\uc2b5\ub2c8\ub2e4. \uc81c \uc5c5\ubb34\uac00 \uc804\uc0b0\uc5c5\uc774 \uc544\ub2c8\ub2e4 \ubcf4\ub2c8 \uc801\uc6a9\ud574\uc57c\uc9c0 \ud558\ub358\uac8c \uc2dc\uac04\uc774 \uc624\ub798 \uc9c0\ub098\ubc84\ub838\uc9c0\ub9cc 2\uc6d4\uc774 \uc9c0\ub098 \uc7a0\uc2dc \uc9ec\uc774 \ub098\uc11c \ud558\ub8e8\ub97c \ud22c\uc790\ud574&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":1782,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[46],"tags":[1432,37,1430,1433,1431,745],"_links":{"self":[{"href":"https:\/\/akal.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1781"}],"collection":[{"href":"https:\/\/akal.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/akal.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/akal.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/akal.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1781"}],"version-history":[{"count":0,"href":"https:\/\/akal.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1781\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/akal.co.kr\/index.php?rest_route=\/wp\/v2\/media\/1782"}],"wp:attachment":[{"href":"https:\/\/akal.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/akal.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/akal.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}