{"id":10758,"date":"2020-08-25T15:04:37","date_gmt":"2020-08-25T06:04:37","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10758"},"modified":"2025-08-27T06:58:02","modified_gmt":"2025-08-26T21:58:02","slug":"tls-%ec%84%a4%ec%a0%95-%ea%b0%80%ec%9d%b4%eb%93%9c","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10758","title":{"rendered":"Postfix \uc124\uce58 (3\/4) &#8211; TLS\/SSL \uc554\ud638\ud654 \uc124\uc815 \uac00\uc774\ub4dc"},"content":{"rendered":"<h1>Postfix \uc124\uce58 (3\/4) &#8211; TLS\/SSL \uc554\ud638\ud654 \uc124\uc815 \uac00\uc774\ub4dc<\/h1>\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 \uc55e\uc11c \uad6c\ucd95\ud55c Postfix \uba54\uc77c \uc11c\ubc84\uc5d0 TLS\/SSL \uc554\ud638\ud654\ub97c \uc801\uc6a9\ud558\uc5ec \uba54\uc77c \uc804\uc1a1\uc758 \ubcf4\uc548\uc744 \uac15\ud654\ud558\ub294 \ubc29\ubc95\uc744 \ub2e4\ub8f9\ub2c8\ub2e4. Let&#8217;s Encrypt \uc778\uc99d\uc11c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb34\ub8cc\ub85c SSL \uc778\uc99d\uc11c\ub97c \uc801\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc0ac\uc124 \uc778\uc99d\uc11c\ub294 \uc678\ubd80 \uba54\uc77c\uc11c\ubc84\uc5d0\uc11c \uac70\ubd80\ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uac1c\uc694<\/h2>\n<p>\uba54\uc77c \uc11c\ubc84\uc5d0\uc11c TLS\/SSL\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \ubaa9\uc801\uc73c\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4:<\/p>\n<ul>\n<li><strong>\uc804\uc1a1 \uc911 \uc554\ud638\ud654<\/strong>: \uba54\uc77c \ub0b4\uc6a9\uc774 \uc804\uc1a1 \uacfc\uc815\uc5d0\uc11c \ub178\ucd9c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ubcf4\ud638<\/li>\n<li><strong>\uc11c\ubc84 \uc778\uc99d<\/strong>: \uba54\uc77c \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc62c\ubc14\ub978 \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ub418\uc5c8\ub294\uc9c0 \ud655\uc778<\/li>\n<li><strong>\ub370\uc774\ud130 \ubb34\uacb0\uc131<\/strong>: \uc804\uc1a1 \uc911 \uba54\uc77c \ub0b4\uc6a9\uc774 \ubcc0\uc870\ub418\uc9c0 \uc54a\uc558\uc74c\uc744 \ubcf4\uc7a5<\/li>\n<\/ul>\n<h2>\ud658\uacbd \uc815\ubcf4<\/h2>\n<ul>\n<li>\ub3c4\uba54\uc778: example.com<\/li>\n<li>\uba54\uc77c \uc11c\ubc84: mail.example.com<\/li>\n<li>\uc11c\ubc84 IP: 111.222.333.444<\/li>\n<li>OS: Ubuntu 20.04\/22.04 LTS<\/li>\n<li>\uc778\uc99d\uc11c: Let&#8217;s Encrypt<\/li>\n<\/ul>\n<h2>Postfix TLS \uc124\uc815<\/h2>\n<h3>1. TLS \uad00\ub828 \ud328\ud0a4\uc9c0 \uc124\uce58<\/h3>\n<pre><code class=\"language-bash\"># OpenSSL\uc774 \ucd5c\uc2e0 \ubc84\uc804\uc778\uc9c0 \ud655\uc778\nsudo apt update\nsudo apt install openssl ca-certificates -y<\/code><\/pre>\n<h3>2. Postfix \uba54\uc778 \uc124\uc815 \ud30c\uc77c \uc218\uc815<\/h3>\n<pre><code class=\"language-bash\">sudo vi \/etc\/postfix\/main.cf\n......\nsmtpd_tls_cert_file = \/etc\/letsencrypt\/live\/example.com\/fullchain.pem\nsmtpd_tls_key_file = \/etc\/letsencrypt\/live\/example.com\/privkey.pem\n\nsmtpd_tls_security_level = may\nsmtp_tls_security_level = may\n\nsmtpd_tls_auth_only = yes\n......<\/code><\/pre>\n<h3>3. Postfix Master \uc124\uc815 \ud30c\uc77c \uc218\uc815<\/h3>\n<p>submission(\ud3ec\ud2b8 587)\uacfc smtps(\ud3ec\ud2b8 465)\ub97c \uc704\ud55c \uc124\uc815\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/postfix\/master.cf\n......\nsubmission inet n       -       y       -       -       smtpd\n  -o smtpd_tls_security_level=encrypt\n  -o smtpd_sasl_auth_enable=yes\n\nsmtps     inet  n       -       y       -       -       smtpd\n  -o smtpd_tls_wrappermode=yes\n  -o smtpd_sasl_auth_enable=yes\n......<\/code><\/pre>\n<h3>4. \ubc29\ud654\ubcbd \uc124\uc815 \uc5c5\ub370\uc774\ud2b8<\/h3>\n<p>SMTPS\uc640 Submission \ud3ec\ud2b8\ub97c \uc5f4\uc5b4\uc90d\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-bash\"># \ud3ec\ud2b8 587 (Submission) \uc5f4\uae30\nsudo ufw allow 587\/tcp\n\n# \ud3ec\ud2b8 465 (SMTPS) \uc5f4\uae30\nsudo ufw allow 465\/tcp\n\n# \ud604\uc7ac \uc5f4\ub9b0 \ud3ec\ud2b8 \ud655\uc778\nsudo ufw status<\/code><\/pre>\n<h2>\uc778\uc99d\uc11c \uad8c\ud55c \uc124\uc815<\/h2>\n<h3>1. Postfix\uac00 \uc778\uc99d\uc11c\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub3c4\ub85d \uad8c\ud55c \uc124\uc815<\/h3>\n<pre><code class=\"language-bash\"># postfix \uc0ac\uc6a9\uc790\ub97c ssl-cert \uadf8\ub8f9\uc5d0 \ucd94\uac00\nsudo usermod -a -G ssl-cert postfix\n\n# \uc778\uc99d\uc11c \ub514\ub809\ud1a0\ub9ac \uad8c\ud55c \ud655\uc778\nsudo ls -la \/etc\/letsencrypt\/live\/example.com\/<\/code><\/pre>\n<h3>2. \uc124\uc815 \uac80\uc99d \ubc0f \uc11c\ube44\uc2a4 \uc7ac\uc2dc\uc791<\/h3>\n<pre><code class=\"language-bash\"># Postfix \uc124\uc815 \uac80\uc99d\nsudo postfix check\n\n# \ubb38\uc81c\uac00 \uc5c6\ub2e4\uba74 \uc11c\ube44\uc2a4 \uc7ac\uc2dc\uc791\nsudo systemctl restart postfix\n\n# \uc11c\ube44\uc2a4 \uc0c1\ud0dc \ud655\uc778\nsudo systemctl status postfix<\/code><\/pre>\n<h2>TLS \uc5f0\uacb0 \ud14c\uc2a4\ud2b8<\/h2>\n<pre><code class=\"language-bash\"># SMTP \ud3ec\ud2b8 25 TLS \uc9c0\uc6d0 \ud655\uc778\nopenssl s_client -connect mail.example.com:25 -starttls smtp\n\n# Submission \ud3ec\ud2b8 587 TLS \uc5f0\uacb0 \ud14c\uc2a4\ud2b8\nopenssl s_client -connect mail.example.com:587 -starttls smtp\n\n# SMTPS \ud3ec\ud2b8 465 TLS \uc5f0\uacb0 \ud14c\uc2a4\ud2b8 (\uc9c1\uc811 TLS)\nopenssl s_client -connect mail.example.com:465<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Postfix \uc124\uce58 (3\/4) &#8211; TLS\/SSL \uc554\ud638\ud654 \uc124\uc815 \uac00\uc774\ub4dc \uc774 \uae00\uc5d0\uc11c\ub294 \uc55e\uc11c \uad6c\ucd95\ud55c Postfix \uba54\uc77c \uc11c\ubc84\uc5d0 TLS\/SSL \uc554\ud638\ud654\ub97c \uc801\uc6a9\ud558\uc5ec \uba54\uc77c \uc804\uc1a1\uc758 \ubcf4\uc548\uc744 \uac15\ud654\ud558\ub294 \ubc29\ubc95\uc744 \ub2e4\ub8f9\ub2c8\ub2e4. Let&#8217;s Encrypt \uc778\uc99d\uc11c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb34\ub8cc\ub85c SSL \uc778\uc99d\uc11c\ub97c \uc801\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc0ac\uc124 \uc778\uc99d\uc11c\ub294 \uc678\ubd80 \uba54\uc77c\uc11c\ubc84\uc5d0\uc11c \uac70\ubd80\ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uac1c\uc694 \uba54\uc77c \uc11c\ubc84\uc5d0\uc11c TLS\/SSL\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \ubaa9\uc801\uc73c\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4: \uc804\uc1a1 \uc911 \uc554\ud638\ud654: \uba54\uc77c \ub0b4\uc6a9\uc774 \uc804\uc1a1\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10758\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-10758","post","type-post","status-publish","format-standard","hentry","category-sendmail"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10758"}],"version-history":[{"count":11,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10758\/revisions"}],"predecessor-version":[{"id":10813,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10758\/revisions\/10813"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}