ในการกำหนดค่า SSL/TLS ด้วย Nginx on Ubuntu คุณสามารถทำตามขั้นตอนเหล่านี้:
ขั้นตอนที่ 1: ติดตั้ง Nginx
หากคุณยังไม่ได้ติดตั้ง Nginx ให้รันคำสั่งต่อไปนี้เพื่อติดตั้ง:
sudo apt update
sudo apt install nginx
ขั้นตอนที่ 2: ติดตั้ง OpenSSL
หากคุณไม่ได้ติดตั้ง OpenSSL ให้ติดตั้งโดยใช้คำสั่งต่อไปนี้:
sudo apt install openssl
ขั้นตอนที่ 3: สร้างไดเรกทอรีสำหรับไฟล์ใบรับรอง SSL
สร้างไดเร็กทอรีเพื่อจัดเก็บไฟล์ใบรับรอง SSL:
sudo mkdir /etc/nginx/ssl
ขั้นตอนที่ 4: สร้างใบรับรอง SSL/TLS ที่ลงนามด้วยตนเอง(ไม่บังคับ)
หากคุณไม่ได้ใช้ใบรับรอง SSL จากผู้ออกใบรับรอง คุณสามารถสร้างใบรับรองที่ลงนามด้วยตนเองด้วย OpenSSL สิ่งนี้มีประโยชน์สำหรับการทดสอบ SSL/TLS ในสภาพแวดล้อมการพัฒนา หากต้องการสร้างใบรับรองที่ลงนามเอง ให้รันคำสั่งต่อไปนี้:
cd /etc/nginx/ssl
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
ขั้นตอนที่ 5: กำหนดค่า Nginx เพื่อใช้ SSL/TLS
เปิด Nginx ไฟล์การกำหนดค่าสำหรับเว็บไซต์ที่คุณต้องการรักษาความปลอดภัย:
sudo vi /etc/nginx/sites-available/your_domain
เพิ่มบรรทัดต่อไปนี้ในไฟล์คอนฟิกูเรชันเพื่อเปิดใช้งาน SSL:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
# Additional SSL/TLS options can be added here(optional)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
# Additional configurations(if needed)
location / {
# Reverse proxy configuration(if needed)
}
}
ขั้นตอนที่ 6: เปิดใช้งานการกำหนดค่าและรีสตาร์ท Nginx
สร้างลิงก์สัญลักษณ์จากไฟล์คอนฟิกูเรชันใน sites-available
to sites-enabled
เพื่อเปิดใช้งานคอนฟิกูเรชัน:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
ตรวจสอบว่า Nginx การกำหนดค่ามีข้อผิดพลาดหรือไม่:
sudo nginx -t
หากไม่มีข้อผิดพลาด ให้เริ่ม Nginx บริการใหม่เพื่อใช้การกำหนดค่าใหม่:
sudo systemctl restart nginx
เมื่อเสร็จแล้ว เว็บไซต์ของคุณจะปลอดภัยด้วย SSL/TLS โปรดทราบว่าการใช้ใบรับรองที่ลงนามเองจะทำให้เบราว์เซอร์เตือนเกี่ยวกับใบรับรองที่ไม่น่าเชื่อถือ ในการมีใบรับรอง SSL/TLS ที่เชื่อถือได้ คุณต้องซื้อหรือขอรับใบรับรองฟรีจากผู้ออกใบรับรอง