SSL Offload ด้วย nginx

Prawit Tangmanopeanchai
2 min readJun 27, 2019

--

ขั้นแรกก็ต้องมี SSL Certificated ก่อน

ถ้าทำแบบ self-signed ก็ใช้คำสั่ง

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout <domain name>.key -out <domain name>.crt

เช่น

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout akumo.com.key -out akumo.com.crt

เสร็จแล้วจะได้ file มา 2 files คือ .key และ .cert (key เป็น private key, cert เป็น public key)

ให้นำ 2 files นี้ไปเก็บไว้ใน directory ที่ต้องการ เช่น /opt/certs โดยไม่ควรวางไว้ที่เดียวกับ config file ของ nginx

แต่หากจะใช้ cert แบบที่ถูกต้องก็ต้องสร้าง private key ขึ้นมาเองก่อนด้วยคำสั่ง

openssl genrsa -out <domain name>.key 2048

จากนั้นให้นำ key ที่ได้นำไปสร้างเป็น .csr file ด้วยคำสั่ง

openssl req -new -key <domain name>.key -out <domain name>.csr

แล้วกรอกข้อมูลลงไป

Country Name : TH
State or Province : Bangkok
Locality : Silom
Organization Name : Akumo Inc.
Organizational Unit : IT
Common Name : akumo.com
Email : akumo@yahoo.com

จากนั้นเมื่อได้ .csr file แล้วก็ส่งให้ทาง CA Vendor นำไปสร้างเป็น public key ส่งกลับมาให้เรา

ถึงขั้นตอนนี้เราก็จะได้ file ทั้ง 2 files ที่ต้องการแล้ว สิ่งที่ต้องทำต่อคือไปแก้ไข config ของ nginx โดยมีสิ่งที่ต้อง config ดังนี้

  1. ให้แก้ไขบรรทัด server_name โดยให้ใส่ชื่อของ domain เราแทนเครื่องหมาย “_” (under score) เช่น

server_name akumo.com;

2. uncomment port 443

listen 443 ssl default_server;

3. เพิ่มข้อมูลบอกตำแหน่งของ certificate file

ssl_certificate และ ssl_certificate_key

เสร็จแล้วให้ restart service ของ nginx ใหม่อีกครั้ง (หรือ reload)

service nginx restart

reference :

--

--

Prawit Tangmanopeanchai
Prawit Tangmanopeanchai

Written by Prawit Tangmanopeanchai

Head of Cloud Implementation Unit at gosoft (Thailand)

No responses yet