ทำไม apache httpd บอกฉันว่า virtualhosts ที่ใช้ชื่อของฉันทำงานได้เฉพาะกับเบราว์เซอร์ที่เปิดใช้งาน SNI (RFC 4366)


9

ทำไมอาปาเช่จึงให้ข้อความแสดงข้อผิดพลาดนี้ในบันทึกของฉัน มันเป็นบวกที่ผิดพลาดหรือไม่?

[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

ฉันเพิ่งอัพเกรดจาก Centos 5.7 เป็น 6.3 และเป็นรุ่น httpd ที่ใหม่กว่า ฉันได้ทำ ssl virtualhost configuration ไว้ด้านล่างเสมอ ที่โดเมนทั้งหมดที่ใช้ใบรับรองเดียวกัน (ส่วนใหญ่ / เสมอสัญลักษณ์ตัวแทน) แบ่งปัน IP เดียวกัน แต่ไม่เคยได้รับข้อความแสดงข้อผิดพลาดนี้มาก่อน (หรือมีฉันบางทีฉันอาจไม่ได้ดูเพียงพอในบันทึกของฉัน?) จากสิ่งที่ฉันได้เรียนรู้สิ่งนี้ควรทำงานโดยไม่ต้อง SNI (บ่งชี้ชื่อเซิร์ฟเวอร์)

นี่คือส่วนที่เกี่ยวข้องของไฟล์ httpd.conf ของฉัน หากไม่มี VirtualHost นี้ฉันจะไม่ได้รับข้อความแสดงข้อผิดพลาด

NameVirtualHost 10.101.0.135:443

<VirtualHost 10.101.0.135:443>
  ServerName sub1.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

<VirtualHost 10.101.0.135:443>
  ServerName sub2.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

คำตอบ:


7

นั่นเป็นเพราะคำสั่ง VirtualHost ของคุณไม่ตรงกับคำสั่งชื่อเซิร์ฟเวอร์ของคุณและ / หรือ CN ของใบรับรอง ทั้งสามต้องเหมือนกันเว้นแต่ว่าคุณมีใบรับรองไวด์การ์ดที่ส่วนที่ไม่ใช่ไวด์ต้องเหมือนกัน


ดังนั้นคำตอบที่นี่คือการเปลี่ยน<VirtualHost 10.101.0.135:443>สายเป็น<VirtualHost sub2.domain.com:443>? ที่อาจเกิดขึ้น?
MichaelJones

@MichaelJones สิ่งนี้แก้ปัญหาได้หรือไม่
Fernando Santiago

@FernandoSantiago ฉันจ่ายเงินสำหรับที่อยู่ IP ที่แตกต่างกันสำหรับโฮสต์เสมือนของฉันในขณะนี้เนื่องจากฉันพบว่า SNI มีความน่าเชื่อถือไม่เพียงพอ และฉันมีที่อยู่ IP เหล่านั้นในVirtualHostการประกาศของฉัน
MichaelJones

1
สิ่งนี้แก้ไขปัญหาของฉันได้อย่างสมบูรณ์แบบ ฉันใช้VirtualHostการ์ดเสริม แต่ServerNameคำสั่งตรงกับใบรับรอง CN ทั้ง 3 จับคู่และวิโอลา! PS: คำตอบserverfault.com/questions/578061/ นี้จะบอกวิธีรับ CN ที่คุณใส่ในใบรับรอง RSA ของคุณ
3bdalla

3

ไม่ใช่ข้อผิดพลาดมันเป็นข้อความเตือน

และคุณได้รับเพราะ 1) คุณได้อัปเดตเวอร์ชัน Apache ของคุณและ 2) คุณมี 2 SSL VirtualHosts โดยใช้ที่อยู่ IP เดียวกันทุกประการ (ตรงข้ามกับการใช้ 2 IP)

เมื่อคุณแบ่งปัน IP เบราว์เซอร์ที่ไม่มีการสนับสนุน SNI จะได้รับเว็บไซต์แรกและไม่เคยเป็นครั้งที่สอง


เบราว์เซอร์ที่ไม่มี SNI จะได้รับการกำหนดค่าใบรับรองสำหรับเว็บไซต์แรก แต่จริงๆแล้วจะจับคู่กับ vhost สำหรับการให้บริการHostส่วนหัวจะได้รับการตรวจสอบตามปกติ
เชนแมดเดน

@ShaneMadden ฉันไม่เชื่อว่าถูกต้องเนื่องจากไม่มีการตรวจสอบส่วนหัว Host: ก่อนทำการเชื่อมต่อ SSL เสร็จสิ้น และนั่นคือจุดทั้งหมดของการได้รับการสนับสนุน SNI หรือต้องการ 1 IP ต่อ SSL VH เป็นอย่างอื่น ดังนั้นหากไม่มี SNI Apache จะใช้ค่าเริ่มต้นเป็น VH แรกที่พบกับที่อยู่ IP นั้นส่วนหัว Host: จะถูกละเว้นในทางปฏิบัติ
rightstuff

... มิฉะนั้นคุณสามารถใช้ SSL NameBasedVirtualHosts บนที่อยู่ IP เดียวได้เพียง 100 รายการและเรารู้ว่าไม่เป็นความจริง (หากไม่มีการสนับสนุน SNI จากเซิร์ฟเวอร์และไคลเอนต์)
rightstuff

4
Otherwise you could do 100s of SSL NameBasedVirtualHosts on 1 single IP address, and we know that's not true (without SNI support by server and client)คุณสามารถ. การใช้งานปกติของสิ่งนี้คือเมื่อทุกคนมีใบรับรองที่เหมือนกันคือไวด์การ์ดหรือใบรับรองชื่ออื่น แต่สมมติว่าคุณมี vhost สองอันที่มีใบรับรอง SSL ของตัวเอง - domain1.com และ domain2.com โดยที่มีการกำหนดค่า domain1.com ก่อน เบราว์เซอร์ที่มีความสามารถที่ไม่ใช่ SNI ร้องขอ domain2.com - พวกเขาได้รับข้อผิดพลาดของโดเมนใบรับรองไม่ตรงกันเนื่องจากพวกเขาได้รับการส่ง domain1 ใบรับรอง - แต่ถ้าพวกเขาคลิกผ่านมันจะได้รับเนื้อหา domain2
Shane Madden

1
หากส่วนหัวของโฮสต์ถูกละเว้นแม้แต่กรณีที่เรียบง่ายและปรับใช้อย่างกว้างขวางของ "ไวลด์การ์ดใบรับรองที่มี vhosts หลายชื่อ" จะไม่ทำงาน อย่างไรก็ตามต่อไปนี้เป็นตัวอย่างของคำถามที่ฉันตอบที่นี่ซึ่งแสดงพฤติกรรมนั้น serverfault.com/q/292637 serverfault.com/q/330212
Shane Madden
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.