โปรดดูหัวข้อแก้ไขในคำตอบของฉันเอง พวกเขามีคำอธิบายถึงปริศนานี้
ฉันพยายามปิดการใช้งาน RC4 สำหรับเซิร์ฟเวอร์ Apache 2.2.9 ที่ทำงานบน CentOS 6.5 VPS และดูเหมือนว่าฉันจะไม่ประสบความสำเร็จ
มีการติดตั้งใบรับรองที่ตรวจสอบโดยธุรกิจที่ซื้อมาล่าสุดและการเชื่อมต่อ SSL ทำงานได้ดี แต่ฉันต้องการกำหนดค่าสิ่งต่างๆให้มากที่สุดเท่าที่จะทำได้เพื่อ "เพิ่มความปลอดภัย" เนื่องจากบทเรียนบางอย่างใช้
การตรวจสอบการกำหนดค่าด้วย Qualys SSL Labs หน้าผลลัพธ์จะแสดง "เซิร์ฟเวอร์นี้ยอมรับรหัส RC4 ซึ่งอ่อนตัวเกรดต่อยอดเป็น B"
อย่างไรก็ตามฉันได้ใส่ไว้ใน ssl.conf:
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3
ฉันบันทึกสคริปต์ที่ให้ไว้ในคำตอบสำหรับคำถามนี้ในไฟล์ชื่อ test-ssl-ciphers.sh และเปลี่ยนที่อยู่ IP เป็นที่อยู่ลูปแบ็ค นี่คือผลลัพธ์ของ./test-ssl-ciphers.sh | grep -i "RC4"
:
Testing ECDHE-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDHE-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing AECDH-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing PSK-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-MD5...NO (no ciphers available)
Testing EXP-ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-KRB5-RC4-SHA...NO (no ciphers available)
Testing EXP-KRB5-RC4-MD5...NO (no ciphers available)
แต่ละบรรทัดเหล่านี้มี "ไม่" ซึ่งตามสคริปต์หมายความว่าเซิร์ฟเวอร์ไม่สนับสนุนชุดรหัสที่ระบุ
ยิ่งกว่านั้นคำสั่งgrep -i -r "RC4" /etc/httpd
ให้ฉันเฉพาะไฟล์ ssl.conf ที่กล่าวถึงข้างต้น
นอกจากนี้การทำงานopenssl ciphers -V
ในชุดรหัสของฉันไม่แสดงรหัสยันต์ RC4 เลยซึ่งทำให้รู้สึกถึงการกำหนดค่าสตริง
ดังนั้นฉันจึงหลงทางว่าทำไมเว็บไซต์ตรวจสอบ SSL กำลังบอกฉันว่า "เซิร์ฟเวอร์ยอมรับ RC4" พวกเขายังแสดงรายการยันต์ต่อไปนี้ว่าเป็นที่ยอมรับ:
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
ใครบ้างมีคำอธิบายที่เป็นไปได้? ฉันทำอะไรผิดไป อาจมีอีกที่ที่รองรับ RC4 หรือ "การยอมรับ" ที่ถูกกำหนดค่า?
ขอบคุณ
[ แก้ไข ] การใช้ CentOS 6.6 ในเครื่องเสมือนที่บ้านฉันเรียกใช้สคริปต์กับ VPS อีกครั้งโดยใช้ชื่อโดเมนแทนที่อยู่ลูปแบ็ค การตั้งค่านี้แสดงว่ารายการ ciphers นั้นจัดทำโดยอินสแตนซ์ openssl ใน VM: ฉันยังไม่มี RC4 อยู่ใน ciphers ที่ให้ผล YES