κ°μ
μμ νλ‘μ νΈμμ Active Mixed Content μλ¬λ₯Ό ν΄κ²°νκΈ° μν΄μ λ°±μλ μλ²μ HTTPS ν΅μ μ΄ κ°λ₯ν΄μΌ νμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ SSL Termination λ°©μμ μ¬μ©νμκ³ , SSL Termination μ²λ¦¬νλ λ°©λ²μΌλ‘λ 2κ°μ§κ° λνμ μ΄λΌλ κ±Έ λ§μλλ Έμ΅λλ€. κ·Έμ€ μ νλ‘μ νΈμμλ λ‘λλ°Έλ°μλ₯Ό νμ©νμ¬ μ΄λ₯Ό ν΄κ²°νμ΅λλ€.
1. 리λ²μ€ νλ‘μ μλ² νμ© : μνμΉ νΉμ NGINX λ₯Ό ꡬλμμΌ λ¦¬λ²μ€ νλ‘μ μλ²λ₯Ό λ§λ€μ΄ λ°±μλ μλ²μ μμ²μ΄ μ€λ©΄ λ¨Όμ 리λ²μ€ νλ‘μ μλ²μμ μ²λ¦¬νκ² λλ€. 리λ²μ€ νλ‘μ μλ²μλ Let's Encrypt κ°μ TLS/SSL μΈμ¦μλ₯Ό μ½κ² κ°μ Έμ€κ³ μ€μΉν μ μλ CA(μΈμ¦ κΈ°κ΄)μμ μ 곡νλ μΈμ¦μλ₯Ό μ€μ νμ¬ SSL Terminationμ κ°λ₯νκ² νλ€.
리λ²μ€ νλ‘μ μλ²μμ HTTP μμ²μ λ°μΌλ©΄ HTTPS μμ²μΌλ‘ 리λ€μ΄λ νΈ μν€κ³ , HTTPS μμ²μ λ°μΌλ©΄ SSL Termination ν ν νλ¬Έ μμ²μ Path λ§λ λ°±μλ μλ²μ λΌμ°ν ν΄μ£Όκ² λλ€.
2. λ‘λλ°Έλ°μ νμ© : λ°±μλ μλ² μμ λ‘λλ°Έλ°μλ₯Ό λμ΄ νΈλν½μ λ¨Όμ λ‘λλ°Έλ°μκ° λ°κ² λλ€. 리λ²μ€ νλ‘μ μλ² μ κ°μ΄ HTTPλ‘ μ¨ μμ²μ HTTPS μμ²μΌλ‘ 리λ€μ΄λ νΈ μν€κ³ , λ‘λλ°Έλ°μμμ SSL Termination ν ν νλ¬Έ μμ²μ λ°±μλ μλ²λ‘ 보λ΄κ² λλ€. AWSλ₯Ό μ΄μ©νκ² λλ©΄ ACMμ ν΅ν΄ μΈμ¦μλ₯Ό λ°κΈνκ³ , ALB(Application Load Balancer = ELB) μ μΈμ¦μλ₯Ό μ€μ ν΄μ£Όμ΄ SSL Terminationμ΄ κ°λ₯νλ€.
https://programmer-may.tistory.com/176
EC2μ HTTPS μμ² λ³΄λ΄κΈ° 1νΈ - (feat. Mixed Content μλ¬)
κ°μμ΅μ’ μ μΌλ‘ νλ‘ νΈμλμ λ°±μλμ μμ μ΄ λλ, Vercelμ λ°°ν¬λ νλ‘ νΈμλ λ°°ν¬ μ£Όμλ‘ λ΄κ° λ§λ ν μ€νΈ μλ²μΈ EC2 μΈμ€ν΄μ€λ₯Ό API μμ²μ μ°κ²° μμΌ°λ€. νμ§λ§ μ°λνμλ§μ μλ¬λ₯Ό λ§λ
programmer-may.tistory.com
(λ‘λλ°Έλ°μλ₯Ό ν΅ν SSL Termination λ°©μμ μ λΈλ‘κ·Έλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.)
μ¬μ μ ν
μ λ² νλ‘μ νΈμμ ACM μ λ‘λλ°Έλ°μλ₯Ό νμ©νμ¬ SSL Termination ν΄κ²°νκΈ° λλ¬Έμ μ΄λ²μ 리λ²μ€ νλ‘μ μλ²λ₯Ό μ΄μ©νμ¬ SSL Termination μ΄ κ°λ₯νκ² ν΄λ³΄μμ΅λλ€.
μ°λΆν¬ μ΄μ체μ EC2 μλ² μμ NginX λ₯Ό νμ©νμ¬ λ¦¬λ²μ€ νλ‘μ μλ²λ₯Ό ꡬμΆνκ³ , SSL/TLS μΈμ¦μλ Let's Encrypt μμ λ°κΈ λ°μλ³΄κ² μ΅λλ€. μ격 μλ² μ μ ν΄λ‘λ MobaXTerm μ νμ©νμκ³ , λ€μ΄λ‘λμ EC2 μ μμ μλ μ λΈλ‘κ·Έ κΈμ μ°Έκ³ ν΄ μ£ΌμΈμ.
https://programmer-may.tistory.com/173
CI/CD : GitHub Actions, EC2, RDSλ₯Ό νμ©ν μλ λ°°ν¬ νμ΄ν λΌμΈ ꡬμΆνκΈ° 2νΈ
μ΄λ² κΈμ μ λ²κΈμμ μ΄μ΄μ§λ μ λ²κΈμ μμ§ λ³΄μ§ μμ λΆλ€μ μ λ²κΈμ μ½μ΄μ£ΌμΈμ. https://programmer-may.tistory.com/172 GitHub Actions, EC2, RDSλ₯Ό νμ©ν μλ λ°°ν¬ νμ΄ν λΌμΈ ꡬμΆνκΈ° 1νΈ μ§λλ² νΌ
programmer-may.tistory.com
SSL/TLS μΈμ¦μλ₯Ό λ°κΈ° μν΄μ μΌλ¨ λλ©μΈμ΄ μμ΄μΌ ν©λλ€. SSL/TLS μΈμ¦μλ λλ©μΈ μ΄λ¦μ κΈ°μ€μΌλ‘ λ°κΈλλ©°, μ΄ μΈμ¦μλ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈλ μλ²μ μ μμ νμΈνκ³ ν΅μ μ μνΈνν μ μκΈ° λλ¬Έμ λλ€. μΈμ¦ κΈ°κ΄(Certificate Authority, CA)μ λλ©μΈμ μμ κΆμ νμΈνκ³ ν΄λΉ λλ©μΈμ λν μΈμ¦μλ₯Ό λ°κΈν©λλ€.
κ·Έλμ 리λ²μ€ νλ‘μ μλ² κ΅¬μΆμ μμ λλ©μΈμ λ¨Όμ ꡬμ νμ¬ μ£ΌμΈμ. κ°λΉμλ AWS Route53 μ ν΅ν΄ λλ©μΈμ ꡬμ ν μ μκ³ , ꡬμ λ°©λ²μ μ λ€λ₯Έ λΈλ‘κ·Έ κΈμ μ°Έκ³ ν΄μ£ΌμΈμ.
리λ²μ€ νλ‘μ μλ² κ΅¬μΆ
EC2 μ NginX μ€μΉ
λ¨Όμ MobaXTerm μ΄λ λ€λ₯Έ μ격 μλ² μ μν΄μ μ΄μ©νμ¬ AWS EC2 μΈμ€ν΄μ€μ μ μν©λλ€. (μ°λΆν¬ μ΄μ체μ μ λ§λ μμμ΄λ―λ‘ λ€λ₯Έ μ΄μ체μ λ₯Ό μ¬μ©νμλ λΆμ κ·Έ μ΄μ체μ μ λ§λ λͺ λ Ήμ΄λ‘ μ λ ₯νμλ©΄ λ©λλ€.)
1. λ¨Όμ μ€μΉ κ°λ₯ν ν¨ν€μ§ λͺ©λ‘μ μ΅μ ν ν΄μ€λλ€. (λͺ μ΄ ~ λͺ μμ΄ μμ)
$ sudo apt update
2. κ·Έλ¦¬κ³ μ λ°μ΄νΈκ° μ€λΉλ νμ Nginxλ₯Ό μ€μΉν©λλ€. μ€κ°μ λμ€ν¬ μ©λμ μ°¨μ§νλ€κ³ λμν κΊΌλκ³ λ¬»λ λ§μ Y λ₯Ό μ λ ₯ν΄μ£Όλ©΄ λ©λλ€.
$ sudo apt install nginx
3. μ€μΉκ° μ μμ μΌλ‘ λλ¬λ€λ©΄ Nginx λ²μ λͺ λ Ήμ΄λ₯Ό ν΅ν΄ μ€μΉκ° μ λλμ§ νμΈν΄ μ€λλ€.
μ€μΉν μμ§μμ€μ λ²μ μ΄ μ λμλ€λ©΄ μ μμ μΌλ‘ λ€μ΄μ΄ λ κ²μ λλ€.
$ nginx -v
μ μ μ€μΉκ° λλ€λ©΄, μ΄λ κ² etc νμ ν΄λμ μμ§μμ€ ν΄λκ° μκΈ΄ κ±Έ νμΈν μ μμ΅λλ€.
4. 보μμ μν΄ ubuntuμ ufw λ°©νλ²½ μ€μ μ ν΅ν΄ νΉμ ν¬νΈλ§ μ μν μ μλλ‘ μ€μ ν΄μ£Όκ² μ΅λ€.
$ sudo ufw enable # ufw λ°©νλ²½ μ¬μ©
$ sudo ufw allow ssh # 22λ² ν¬νΈ νμ©
$ sudo ufw allow 'Nginx Full' # 80, 443λ² ν¬νΈ νμ©
5. μ μ€μ λμλμ§ νμΈν΄ μ€μλ€.
$ sudo ufw status
ufw (Uncomplicated Firewall)λ₯Ό μ¬μ©νμ¬ Nginx Full νλ‘νμΌμ μ€μ νλ©΄ HTTPμ HTTPS νΈλν½μ νμ©νκ² λ©λλ€. μ¦, Nginx Full νλ‘νμΌμ ν¬νΈ 80 (HTTP)κ³Ό ν¬νΈ 443 (HTTPS)μ λͺ¨λ μ΄μ΄μ€λλ€.
μμ κ°μ΄ λμλ€λ©΄, 22λ² ν¬νΈ, 80 ν¬νΈ, 443 ν¬νΈμ λν λ°©νλ²½μ μ μμ μΌλ‘ μ΄μ΄μ€ κ²μ λλ€.
6. Nginxλ₯Ό μ€ννκ³ μνλ₯Ό νμΈν΄μ€μλ€.
$ sudo systemctl start nginx
7. μμ§μμ€ μννμΈ
$ sudo systemctl status nginx
μμ κ°μ΄ active(running) μ΄ λνλλ€λ©΄ μ μμ μΌλ‘ μμ§μμ€ λ¦¬λ²μ€ νλ‘μ μλ²κ° ꡬλλ κ²μ λλ€.
Let’s Encryptμ Certbotμ μ΄μ©ν΄ SSL μΈμ¦μ μ μ©νκΈ°
Let's Encryptλ 무λ£λ‘ SSL/TLS μΈμ¦μλ₯Ό μ 곡νλ μΈμ¦ κΈ°κ΄(CA)μ λλ€. μΈν°λ· 보μ μ°κ΅¬ κ·Έλ£Ή(ISRG, Internet Security Research Group)μ μν΄ μ΄μλλ©°, μΉμ¬μ΄νΈ μμ μκ° μΉ νΈλν½μ μνΈννμ¬ HTTPSλ₯Ό ꡬνν μ μλλ‘ λμ΅λλ€.
Certbotμ Let's Encryptμμ μ 곡νλ SSL/TLS μΈμ¦μλ₯Ό μλμΌλ‘ κ΄λ¦¬νλ μ€ν μμ€ μννΈμ¨μ΄ λꡬμ λλ€. Certbotμ μ¬μ©νλ©΄ SSL μΈμ¦μλ₯Ό μ½κ² λ°κΈλ°κ³ μ€μΉνλ©°, μλμΌλ‘ κ°±μ ν μ μμ΅λλ€.
8. λ¨Όμ μ€μΉ κ°λ₯ν ν¨ν€μ§λ₯Ό λ€μ μ΅μ ν μμΌμ£Όκ³ ,
$ sudo apt update
9. Certbotμ μ€μΉν©λλ€. μ€κ°μ λμ€λ μ©λ μ°¨μ§ λμλ Y λ₯Ό μ λ ₯ν΄μ€λλ€.
$ sudo apt install certbot python3-certbot-nginx
10. Nginx νλ¬κ·ΈμΈμΌλ‘ μΈμ¦μλ₯Ό μμ±ν΄μ€λλ€.
$ sudo certbot --nginx
11. κ·Έλ¬λ©΄ λ°κΈμμ λν μ΄λ©μΌμ κ΅³λ μ°½μ΄ λμ€λλ° λ³ΈμΈμ μ΄λ©μΌμ μ λ ₯ν΄μ€λλ€. μ΄ μ΄λ©μΌλ‘ μΈμ¦μμ λ§λ£ λκΈ°μ μλ¦Ό μ΄λ©μΌμ΄λ κ°±μ νλΌλ μλ¦Ό μ΄λ©μΌμ΄ μ€κ² λ©λλ€.
12. κ·Έλ€μμ Let's Encryptμ μλΉμ€ μ½κ΄μ μ½κ³ λμν΄μΌ νλλ λ¬Έκ΅¬κ° λνλ©λλ€. Let's Encryptλ ACME(Automated Certificate Management Environment) μλ²μμ λ±λ‘μ μν΄ μλΉμ€ μ½κ΄μ λμνλ κ²μ μꡬν©λλ€. λμλ₯Ό νλ€λ©΄ Certbotμ κ³μν΄μ SSL μΈμ¦μλ₯Ό λ°κΈλ°κΈ° μν μ μ°¨λ₯Ό μ§νν©λλ€.
μλΉμ€λ₯Ό μ΄μ©νκΈ° μν΄ λμ ν©λλ€. Y μ λ ₯
13. κ·Έλ€μμ Let's Encrypt νλ‘μ νΈμ 창립 ννΈλμΈ μ μ νλ‘ ν°μ΄ μ¬λ¨(Electronic Frontier Foundation, EFF)μμ κ·νμ μ΄λ©μΌ μ£Όμλ₯Ό 곡μ ν μμ¬κ° μλμ§ λ¬»λ λ¬Έκ΅¬κ° λνλκ² λ©λλ€. λμνκ² λλ©΄ Let's Encrypt νλ‘μ νΈμ κ΄λ ¨λ μμ, μΊ νμΈ, κ·Έλ¦¬κ³ λμ§νΈ μμ λ₯Ό μ§μνλ λ°©λ² λ±μ λν μ΄λ©μΌμ λ°μ μ μμ΅λλ€. μ κ΅³μ΄ λ°μ νμκ° μλ μΆμ΄μ Nλ₯Ό μ λ ₯νμ΅λλ€.
14. λ§μ§λ§μΌλ‘ μΈμ¦μλ₯Ό λ±λ‘ν λλ©μΈμ μ λ ₯νλΌκ³ λμ€λλ°, κ°λΉμ λλ AWS Route53μμ λ±λ‘νλ λλ©μΈμ μ λ ₯νλ©΄λ©λλ€.
μλ§ κ°λΉμ μμ λλ©μΈμ ꡬμ ν λ€λ₯Έ μ²λ¦¬λ₯Ό νμ§ μμ μ¬λλ€μ μ μ κ°μ μλ¬λ₯Ό λ§λκ² λ κ²μ λλ€. ( AWS Route53 μμ λλ©μΈ ꡬμ ν νΈμ€ν μμ λ±λ‘κΉμ§ λμλ€λ©΄ μλ§ μλ¬κ° λνλμ§ μμ κ²λλ€. μλ¬κ° λνλμ§ μμ λΆλ€μ μλ μ μμ μΌλ‘ μμ§μμ€ μ€μ νμΌμ μΈμ¦μκ° certbotμ μν΄ κ΄λ¦¬λκ³ μλμ§ νμΈνλ κ±Έ 보μλ©΄ λ©λλ€.)
μ΄ μ€λ₯ λ©μμ§λ Let's Encrypt μΈμ¦μ λ°κΈ κ³Όμ μμ μ λλ©μΈ *******.storeμ DNS νμΈμ΄ μ€ν¨νμμ λνλ λλ€.
μλ¬λ₯Ό ν΄κ²°νκΈ° μν΄ λ€μ λ κ°μ§λ₯Ό μ€μ ν΄μΌν©λλ€.
1. λλ©μΈ A λ° AAAA λ μ½λ λ±λ‘
λλ©μΈμ A (IPv4) λ° AAAA (IPv6) λ μ½λλ₯Ό λ±λ‘ν©λλ€. A λ μ½λλ λλ©μΈμ΄ μλ²μ IP μ£Όμλ₯Ό κ°λ¦¬ν€λλ‘ νκ³ , AAAA λ μ½λλ IPv6 μ£Όμλ₯Ό κ°λ¦¬ν΅λλ€.
2. λλ©μΈμ λ€μμλ² μν νμΈ
λλ©μΈμ λ€μμλ² λ±λ‘ λ° λλ©μΈμ λ€μμλ²κ° μ¬λ°λ₯΄κ² μ€μ λκ³ μλ μ€μΈμ§ νμΈν΄μΌ ν©λλ€. λ€μμλ²κ° μ λλ‘ λμνμ§ μμΌλ©΄ λλ©μΈμ DNS μ‘°νκ° μ€ν¨ν μ μμ΅λλ€.
λ¬Έμ λ₯Ό ν΄κ²°ν΄ λ΄ μλ€.
λ¨Όμ ꡬμ ν λλ©μΈμ νΈμ€ν μμ λ±λ‘μ ν΄μ€μΌν©λλ€. AWS Route53 μλΉμ€λ₯Ό μ΄μ©νμ¬ μ§ννμ΅λλ€.
νΈμ€ν μμ λ±λ‘κ³Ό λ μ½λ λ±λ‘μ μ λΈλ‘κ·Έ λ€λ₯Έ κΈμλ λ§μ΄ λμ μμ΅λλ€.
νΈμ€ν μμμ λ±λ‘νκ³ ν΄λΉ λλ©μΈμ λ€μ΄μ€λ©΄ λ€μκ³Ό κ°μ΄ λνλ©λλ€.
λ¨Όμ λλ©μΈμ λν A λ μ½λλ₯Ό λ±λ‘ν΄μΌν©λλ€. λλ©μΈμΌλ‘ μ μμ μλν λ DNS μμ μ΄λ μ£Όμλ‘ κ°μΌνλ μ§ μ€μ ν΄μΌνκΈ° λλ¬Έμ λλ€.
λ μ½λ μμ±μ λλ¬ A λ μ½λλ₯Ό μμ±ν΄μ€μλ€.
κ°μ EC2 νΌλΈλ¦ IP μ£Όμλ₯Ό λ£κ³ λ μ½λ μμ±μ λλ₯΄λ©΄ λ©λλ€.
κ·Έλ€μ κ°λΉμμ λ€μ΄κ°μ νΈμ€ν μμμ Name Server λ₯Ό λ±λ‘ν΄μ€μΌν©λλ€.
NS μ ν λ μ½λλ₯Ό ν΄λ¦ ν΄λ³΄λ©΄ 4κ°μ λλ©μΈμ λ€μμλ²κ° λνλλ κ±Έ νμΈ ν μ μμ΅λλ€. μ΄λ₯Ό μ°¨λ‘λλ‘ κ°λΉμμμ λ°κΈ λ°μ λλ©μΈμ λ€μμλ² μ€μ μμ μ€μ ν΄μ£Όλ©΄ λ©λλ€.
μ μν μ μ λ§μ§λ§ . μ μ μ§ μλ κ²μ λλ€. κ·Έλμ λ³΅μ¬ λΆμ¬λ£κΈ°λ₯Ό μΆμ² λ립λλ€.
(EX : ns-123*****.com. μ΄ μλλΌ λ§μ§λ§ . μ λΊ ns-123*****.com )
μ€μ μ΄ μλ£λμΌλ©΄ DNS μ νλ₯Ό κΈ°λ€λ €μΌν©λλ€.
DNS μ ν μκ° κ³ λ € - λ€μμλ² λ³κ²½ μ¬νμ΄ μ νλλ λ° μ΅λ 48μκ°μ΄ 걸릴 μ μμ΅λλ€. λ³κ²½ ν μΌμ μκ° κΈ°λ€λ €μΌ ν μλ μμ΅λλ€. μ λ ν 10λΆ μ΄μμ κΈ°λ€λ Έλ κ² κ°μ΅λλ€. μλ λ¨Όμ μ€μ νκ³ μΈμ¦μλ₯Ό λ°λ κ² νΈν κ±Έ μμμ§λ§ μλ¬κ° λνλλ κ±Έ 보기 μν΄ μ λ μ€μ νμ§ μκ³ μ§ννμ΅λλ€.
DNS μ€μ μ΄ μ¬λ°λ₯΄κ² μ νλμ΄ μλμ§ νμΈνκΈ° μν΄ μλμ λλ©μΈ μ‘°ν λꡬλ₯Ό μ¬μ©ν΄ λ³Ό μ μμ΅λλ€.
DNS Propagation Checker - Global DNS Checker Tool
Instant DNS Propagation Check. Global DNS Propagation Checker - Check DNS records around the world.
www.whatsmydns.net
λλ©μΈ μ΄λ¦κ³Ό A λ μ½λλ‘ κ²μμ ν΄λ³΄λ©΄ X νμκ° λνλλ κ±Έ λ³Ό μ μμ΅λλ€. μμ§ DNS μ νκ° μ΄λ£¨μ΄μ§μ§ μμ κ²μ λλ€. μ λ 10λΆμμ 20λΆ κΈ°λ€λ¦¬κ³ λμ λͺλͺ λλΌμμ μ΄λ‘ 체ν¬λ₯Ό λ°μ μ μμμ΅λλ€. μ΄λ‘ μ²΄ν¬ νμκ° λ κ³³μλ λλ©μΈμ A μ νμΌλ‘ κ²μνμ μ μ κ° μ€μ ν΄λ νΌλΈλ¦ IP κ° λνλκ² λ©λλ€.
μΌλ¨ νκ΅μμ μ΄λ‘ 체ν¬κ° λνλ¬κΈ° λλ¬Έμ λ€μ μΈμ¦μ λ±λ‘μ μ§ννμμ΅λλ€.
15. μμ§μμ€ νλ¬κ·ΈμΈμ μ΄μ©ν μΈμ¦μ λ±λ‘μ νλ©΄ μ€κ° κΉμ§ μ§ννλ κ³Όμ λ€μ μλ΅λκ³ λ§μ§λ§μΌλ‘ μ€ν¨ νλ λλ©μΈ λ±λ‘μ΄ λνλκ² λ©λλ€. DNS μ νκ° μ μ΄λ£¨μ΄μ‘λ€λ©΄ λλ©μΈμ μ λ ₯ν΄μ£Όλ©΄ λ©λλ€.
$ sudo certbot --nginx
16. μ μμ μΌλ‘ μ§νμ΄ λμλ€λ©΄ μλμ κ°μ΄ Successfullyκ° λνλκ² λ©λλ€.
κ·Έλ¦¬κ³ μΆν 문ꡬμ ν¨κ» ν΄λΉ λλ©μΈμ HTTPS μμ²μ΄ κ°λ₯νλ€κ³ μλ €μ£Όκ² λ©λλ€.
17. μμ§μμ€λ₯Ό μ¬μμνκ³ ,
$ sudo systemctl restart nginx
18. μ μμλνλμ§ νμΈνκΈ° μν΄ μνλ₯Ό νμΈν΄ μ€λλ€.
$ sudo systemctl status nginx
λ€μκ³Ό κ°μ΄ active(Running) μ΄ λνλλ€λ©΄ μ μμ μΌλ‘ ꡬλνκ³ μλ€λ κ²μ λλ€.
μμ§μμ€ μ€μ νμΌ νΊμ보기
μ΄μ μμ§μμ€μ μ€μ νμΌμ λ³΄κ² μ΅λλ€.
/etc/nginx/sites-available/default
/etc/nginx/sites-available/ κ²½λ‘λ‘ μ€λ©΄ default νμΌμ΄ μλ κ±Έ λ³Ό μ μμ΅λλ€.
μ΄ νμΌμ Nginx μλ²μ κΈ°λ³Έ μλ² λΈλ‘ μ€μ μ μ μνκ³ μμ΅λλ€. μ΄ νμΌμ κΈ°λ³Έ μΉ μλ² μ€μ , κ°μ νΈμ€νΈ μ€μ , SSL μ€μ λ±μ ν¬ν¨νκ³ μμΌλ©°, μλ²κ° μμ νλ μμ²μ μ΄λ»κ² μ²λ¦¬ν μ§ μ§μ ν©λλ€.
νμΌμ μ΄λν΄ λ³΄λ©΄,
143 ~ 148 λ² μ§Έ μ€μ 보면 μ°λ¦¬κ° μ€μ ν΄μ€ Let’s Encryptμ Certbot μ ν΅ν΄ κ΄λ¦¬ λκ³ μλ€λ κ±Έ νμΈν μ μμ΅λλ€.
λν μ΄ νμΌμ ν΅ν΄ μλ² λΈλ‘μ μμ νμ¬, μμ²μ μμ μ μ΄λ€ pathμ μμ²μ΄λ©΄ μ΄λ€ api μλ²λ‘ ν¬μλ© ν΄μ€μ§ μ€μ ν μμμ΅λλ€.
μ£Όμλ¬Έμ ν΅ν΄ μ΄λ»κ²νλ©΄ μλ²μ νΈλν½ μ€μ μ ν μ μλμ§ μ€λͺ μ΄ λμμμ΅λλ€.
μ΄ μ€μ νμΌ μμ νμ¬ μ κ° μνλ λ°©μμΌλ‘ λ§λ€λ©΄ λ©λλ€.
μ£Όμλ¬Έμ μ κ±°νκ³ , κ°λ¨ν μμλ₯Ό λ§λ€μ΄ 보μμ΅λλ€.
server {
server_name example.com;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.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
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name example.com;
return 404; # managed by Certbot
}
- server : λΈλ‘μ ν΅ν΄ HTTP (80)μΌ λμ HTTPS (443)μΌ λ μ΄λ»κ² μ²λ¦¬ν κ²μΈμ§ μ μλμ΄ μμ΅λλ€.
- HTTPS μΌ λλ 8080ν¬νΈμ API μλ²λ‘ 보λ΄κ³
- HTTP μΌ λλ 301 Moved Permanently λ₯Ό μλ΅νμ¬ HTTPSλ‘ λ¦¬λ€μ΄λ νΈν©λλ€.
- listen : μ΄λ€ ν¬νΈμ μμ²μ μ΄λ»κ² μ²λ¦¬ν κ²μΈμ§ λͺ μν©λλ€. (80 - http, 443 - https)
- server_name : μ΄λ€ λλ©μΈμ μμ²μ μ²λ¦¬ν κ²μΈμ§ λͺ μν©λλ€. μ¬λ¬ κ° μ§μ λ κ°λ₯ν©λλ€.
- location : μ΄λ€ pathμ λν μμ²μ μ΄λ»κ² μ²λ¦¬ν κ²μΈμ§ λͺ
μν©λλ€.
- proxy_pass : ν΄λΉ μμ²μ μ§μ ν κ²½λ‘λ‘ ν¬μλ©ν©λλ€. (μ€νλ§ μλ²λ λ§€μΉ μμΌμ€)
- proxy_set_header : ν¬μλ© μμ ν€λ κ°μ μ μν©λλ€. ($xxx κ° μΌμ’ μ λ³μκ° λ¨)
- ssl_certificate, ssl_certificate_key : SSL μΈμ¦μ λ° λΉλ°ν€ κ²½λ‘λ₯Ό μ§μ ν©λλ€.
- include : νΉμ νμΌμ μ€μ μ λΆλ¬μ΅λλ€. (μ¬κΈ°μλ options-ssl-nginx.conf λ₯Ό ν΅ν΄ SSL κ΄λ ¨ μ€μ μ λΆλ¬μ΄)
- ssl_dhparam : μνΈν 볡μ‘λλ₯Ό λμ¬μ£Όλ λνΌ ν¬λ§ νλΌλ―Έν°λ₯Ό μ€μ νμ¬ λ³΄μμ κ°νν©λλ€.
'Web programming' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μνμΉ vs μμ§μμ€ (0) | 2024.03.29 |
---|---|
NGINX 리λ²μ€ νλ‘μ μλ² μ€μ νΈλ¬λΈ μν (0) | 2024.02.27 |
CORS μλ¬ κ°λ κ³Ό ν΄κ²°λ² (Spring MVC, Spring Security) (0) | 2023.12.20 |
Web programming : RESTful URL μ€κ³ κ·μΉ (0) | 2023.12.13 |
Web programming : RESTful API λ (0) | 2023.12.12 |
λκΈ