วิธีเปิดใช้งาน TLS 1.2 ใน Nginx


17

ฉันจะเปิดใช้งาน TLS 1.1 และ 1.2 สำหรับการเชื่อมต่อ SSL ในเซิร์ฟเวอร์ Ubuntu 12.04 ของฉันได้อย่างไร ฉันใช้ไลบรารี nginx และ openssl เวอร์ชันต่อไปนี้

$ ./nginx -v
nginx version: nginx/1.2.3

$ openssl version -a
OpenSSL 1.0.1 14 Mar 2012
built on: Tue Jun  4 07:26:06 UTC 2013
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"

คุณพบอะไรหรือยัง
BigSack

คุณแก้ไขปัญหานี้หรือไม่? เวอร์ชัน nginx ที่คุณใช้นั้นเก่ามาก คุณอาจพบว่าการกำหนดค่า SSL ในบทความ Ars Technicaมีประโยชน์
พอล

คำตอบ:


14

ก่อนอื่นคุณต้องเปิดใช้งาน SSL / TLS ในnginx.conf:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.org;

    ssl_certificate /etc/ssl/example.org.crt;
    ssl_certificate_key /etc/ssl/private/example.org.key;

สองlistenบรรทัดเปิดใช้งาน SSL ที่การเชื่อมต่อ IPv4 และ IPv6 ของคุณ หากคุณไม่มี IPv6 คุณอาจทิ้งlistenสายที่สองไว้

/etc/sslฉันคิดว่าใบรับรองเซิร์ฟเวอร์ของคุณอยู่ใน หากคุณใช้เส้นทางอื่นคุณจะเปลี่ยนสองบรรทัดสุดท้าย

ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

สิ่งนี้เปิดใช้งาน TLS เวอร์ชันต่างๆ เบราว์เซอร์ปัจจุบันทั้งหมดสามารถใช้ TLS1.2 ได้ เบราว์เซอร์รุ่นเก่าผมเขียนHOWTO ขนาดเล็กช่วยให้ตั้งค่าความปลอดภัย

ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA;
ssl_prefer_server_ciphers on;

บรรทัดแรกตั้งค่า ciphers ที่ nignx ของคุณควรใช้ บรรทัดที่สองชอบชุดรหัสบนฝั่งเซิร์ฟเวอร์ (ไม่ใช่ไคลเอ็นต์) เพื่อให้คุณสามารถใช้ยันต์ที่แข็งแกร่ง

หากคุณทำเสร็จแล้ว nginx ของคุณควรใช้ TLS1.2 หากคุณต้องการคุณสามารถเพิ่มเว็บไซต์ของคุณลงในหอเกียรติยศ TLS1.2และภูมิใจได้ ;)

อย่างไรก็ตามมีหลายวิธีในการปรับปรุงการตั้งค่า ฉันทำตามคู่มือเยอรมันนี้สำหรับการกำหนดค่า Nginx ที่เชื่อถือได้


Ubuntu 12 ปิดใช้งาน TLS 1.1 และ TLS 1.2 ด้วยเหตุผลในการทำงานร่วมกัน ฉันคิดว่าพวกเขาเปิดใช้งาน TLS 1.1 เร็ว ๆ นี้ แต่ฉันเชื่อว่า TLS 1.2 ยังขาดอยู่ ดูที่เวอร์ชันระดับล่างของOpenSSL คือ 1.0.0 และไม่รองรับ TLS 1.2

1

มีคำแนะนำด้านความปลอดภัยมากมายที่ได้รับการแก้ไขใน nginx รุ่นต่อไป หากคุณยังคงอยู่ (โพสต์เก่าค้างนาน 6 เดือน) ในสถานการณ์นี้ลองพิจารณาอัปเกรดอย่างจริงจัง การตั้งค่า TLS จะไม่สำคัญหากเว็บเซิร์ฟเวอร์เองไม่ปลอดภัย ดูhttp://nginx.org/en/security_advisories.htmlเพื่อดูรายละเอียด

หากด้วยเหตุผลบางอย่างที่คุณต้องใช้งาน nginx รุ่นนี้ข้อมูลที่มีอยู่ในการเปิดใช้งานชุดเข้ารหัสที่รัดกุมด้วย nginx (หรือ Apache) ที่นี่อาจช่วยได้: https://community.qualys.com/blogs/securitylabs/2013/08/ 05 / กำหนดค่า-Apache-Nginx และ OpenSSL สำหรับคาดการณ์ล่วงหน้าไว้เป็นความลับ


0

ฉันจะเปิดใช้งาน TLS 1.1 และ 1.2 สำหรับการเชื่อมต่อ SSL ในเซิร์ฟเวอร์ Ubuntu 12.04 ของฉันได้อย่างไร

ฉันเชื่อว่ามีสามทางเลือก

ก่อนอื่นไม่ทำอะไรเลยและใช้ OpenSSL เวอร์ชัน Ubuntu 12 ฉันเชื่อว่ารองรับ TLS 1.1 แล้ว แต่คุณยังไม่มี TLS 1.2

ประการที่สองการสร้างและการบำรุงรักษาของคุณเองPPA มีคำแนะนำในการทำเช่นนั้นที่Override Distro Package ด้วย Custom Package ใช่หรือไม่ เพื่อความสมบูรณ์ไม่มีแพ็คเกจเก็บถาวรส่วนบุคคลที่มีอยู่สำหรับ Ubuntu และ OpenSSLที่เสนอโปรโตคอลเต็มรูปแบบ

ที่สามคือการอัพเกรดเป็น Ubuntu รุ่นที่ใหม่กว่าเช่น Ubuntu 14. ฉันกำลังพยายามตรวจสอบว่า Ubuntu 14 เปิดใช้งานพวกเขาทั้งหมดหรือไม่ ดูUbuntu 14, OpenSSL และโปรโตคอล TLS หรือไม่ .

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.