การกำหนดค่า SSL/TLS ด้วย Nginx เปิด Ubuntu

ในการกำหนดค่า 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 ที่เชื่อถือได้ คุณต้องซื้อหรือขอรับใบรับรองฟรีจากผู้ออกใบรับรอง