ใช่ แต่มีข้อแม้อยู่บ้าง
สิ่งนี้สามารถทำได้ผ่านการระบุชื่อเซิร์ฟเวอร์ซึ่งเป็นส่วนเสริมของ Transport Layer Security
บ่งชี้ชื่อเซิร์ฟเวอร์คืออะไร
บ่งชี้ชื่อเซิร์ฟเวอร์ ( RFC 6066 ; ล้าสมัยRFC 4366 , RFC 3546 ) เป็นส่วนขยายของTransport Layer Securityซึ่งอนุญาตให้ไคลเอนต์บอกชื่อเซิร์ฟเวอร์ของโฮสต์ที่พยายามจะเข้าถึงเซิร์ฟเวอร์
SNI เข้ากันได้กับ TLS 1.0 และสูงกว่าตามข้อกำหนด แต่การใช้งานอาจแตกต่างกัน (ดูด้านล่าง) ไม่สามารถใช้กับ SSL ดังนั้นการเชื่อมต่อจะต้องเจรจา TLS (ดูRFC 4346 ภาคผนวก E ) เพื่อให้ SNI ใช้ สิ่งนี้มักจะเกิดขึ้นโดยอัตโนมัติด้วยซอฟต์แวร์ที่รองรับ
ทำไม SNI ถึงต้องการ?
ในการเชื่อมต่อHTTPปกติเบราว์เซอร์แจ้งเซิร์ฟเวอร์ของชื่อโฮสต์ของเซิร์ฟเวอร์ที่พยายามเข้าถึงโดยใช้Host:
ส่วนหัว นี้จะช่วยให้เว็บเซิร์ฟเวอร์ที่อยู่ IP เดียวที่จะให้บริการเนื้อหาสำหรับชื่อโฮสต์หลายซึ่งเป็นที่รู้จักกันทั่วไปว่าเป็นชื่อที่ใช้ virtual hosting
ทางเลือกคือการกำหนดที่อยู่ IP ที่ไม่ซ้ำกันสำหรับแต่ละชื่อโฮสต์ของเว็บที่จะให้บริการ สิ่งนี้ทำกันโดยทั่วไปในช่วงต้น ๆ ของเว็บก่อนที่จะเป็นที่รู้จักกันอย่างกว้างขวางว่าที่อยู่ IP จะหมดลงและมาตรการอนุรักษ์เริ่มขึ้นและยังคงทำเช่นนี้สำหรับโฮสต์เสมือน SSL (ไม่ได้ใช้ SNI)
เนื่องจากวิธีการส่งชื่อโฮสต์ต้องใช้การเชื่อมต่อที่สร้างไว้แล้วจึงไม่สามารถใช้งานได้กับการเชื่อมต่อ SSL / TLS เมื่อถึงเวลาที่มีการตั้งค่าการเชื่อมต่อที่ปลอดภัยเว็บเซิร์ฟเวอร์จะต้องทราบชื่อโฮสต์ที่จะให้บริการกับลูกค้าเพราะเว็บเซิร์ฟเวอร์เองกำลังตั้งค่าการเชื่อมต่อที่ปลอดภัย
SNI แก้ปัญหานี้โดยให้ไคลเอนต์ส่งชื่อโฮสต์เป็นส่วนหนึ่งของการเจรจา TLS เพื่อให้เซิร์ฟเวอร์ทราบแล้วว่าควรใช้โฮสต์เสมือนใดในการให้บริการการเชื่อมต่อ เซิร์ฟเวอร์สามารถใช้ใบรับรองและการกำหนดค่าสำหรับโฮสต์เสมือนที่ถูกต้อง
ทำไมไม่ใช้ที่อยู่ IP อื่น
Host:
ส่วนหัวHTTP ได้รับการกำหนดให้อนุญาตให้มีเว็บโฮสต์มากกว่าหนึ่งแห่งให้บริการจากที่อยู่ IP เดียวเนื่องจากการขาดแคลนที่อยู่ IPv4 ซึ่งได้รับการยอมรับว่าเป็นปัญหาตั้งแต่ช่วงกลางทศวรรษที่ 1990 ในสภาพแวดล้อมการโฮสต์เว็บที่ใช้ร่วมกันเว็บไซต์ที่ไม่ซ้ำกันและไม่เกี่ยวข้องหลายร้อยแห่งสามารถให้บริการได้โดยใช้ที่อยู่ IP เดียวด้วยวิธีนี้เพื่อประหยัดพื้นที่ที่อยู่
สภาพแวดล้อมการโฮสต์ที่ใช้ร่วมกันนั้นพบว่าผู้บริโภคที่ใหญ่ที่สุดของพื้นที่ที่อยู่ IP คือความต้องการเว็บไซต์ที่ปลอดภัยที่จะมีที่อยู่ IP ที่ไม่ซ้ำกันทำให้ SNI เป็นตัววัดช่องว่างระหว่างทางสู่ IPv6 วันนี้บางครั้งก็ยากที่จะได้รับน้อยที่สุดเท่าที่ 5 ที่อยู่ IP (/ 29) โดยไม่มีเหตุผลสำคัญมักทำให้เกิดความล่าช้าในการปรับใช้
ด้วยการถือกำเนิดของ IPv6 เทคนิคการอนุรักษ์ที่อยู่ดังกล่าวไม่จำเป็นอีกต่อไปเนื่องจากโฮสต์เดียวสามารถมีที่อยู่ IPv6 ที่ได้รับมอบหมายมากกว่าอินเทอร์เน็ตทั้งหมดที่มีอยู่ในวันนี้ สัมพันธ์
คำเตือน
ชุดของระบบปฏิบัติการ / เบราว์เซอร์บางตัวไม่รองรับ SNI (ดูด้านล่าง) ดังนั้นการใช้ SNI จึงไม่เหมาะสมสำหรับทุกสถานการณ์ เว็บไซต์ที่กำหนดเป้าหมายชุดของระบบ / เบราว์เซอร์ดังกล่าวจะต้องละทิ้ง SNI และใช้ที่อยู่ IP ที่ไม่ซ้ำกันสำหรับโฮสต์เสมือนแต่ละรายการ
จากหมายเหตุเฉพาะไม่มี Internet Explorer รุ่นใดใน Windows XP ที่รองรับ SNI เนื่องจากชุดค่าผสมนี้ยังคงแสดงถึงการลดลงอย่างมีนัยสำคัญ (แต่ลดลงอย่างต่อเนื่องประมาณ 16% ของปริมาณการใช้อินเทอร์เน็ตในเดือนธันวาคม 2012 ตาม NetMarketShare) ส่วนของปริมาณการใช้อินเทอร์เน็ต SNI จะไม่เหมาะสมสำหรับไซต์ที่กำหนดเป้าหมายประชากรของผู้ใช้เหล่านี้
สนับสนุน
แพ็คเกจซอฟต์แวร์ที่ใช้กันทั่วไปจำนวนมาก แต่ไม่ใช่ทั้งหมดที่รองรับ SNI
(การละเว้นจากรายการนี้ไม่ได้แปลว่าขาดการสนับสนุนหมายความว่ามีจำนวน จำกัด ที่ฉันสามารถพิมพ์ได้หรือฉันไม่สามารถค้นหาข้อมูลในการค้นหาได้อย่างรวดเร็วหากแพคเกจซอฟต์แวร์ของคุณไม่อยู่ในรายการให้ค้นหา สำหรับชื่อและsni
ควรเปิดเผยหากมีการสนับสนุนและวิธีการตั้งค่า)
สนับสนุนห้องสมุด
แพ็คเกจส่วนใหญ่ขึ้นอยู่กับไลบรารีภายนอกเพื่อให้การสนับสนุน SSL / TLS
- GNU TLS
- JSSE (Oracle Java) 7 หรือสูงกว่าเป็นลูกค้าเท่านั้น
- libcurl 7.18.1 ขึ้นไป
- NSS 3.1.1 หรือสูงกว่า
- OpenSSL 0.9.8j หรือสูงกว่า
- OpenSSL 0.9.8f หรือสูงกว่าพร้อมกำหนดค่าสถานะ
- Qt 4.8 หรือสูงกว่า
การสนับสนุนเซิร์ฟเวอร์
ซอฟต์แวร์เซิร์ฟเวอร์ยอดนิยมรุ่นล่าสุดรองรับ SNI คำแนะนำในการตั้งค่ามีให้ใช้งานโดยส่วนใหญ่:
ฝ่ายบริการลูกค้า
เว็บเบราว์เซอร์ส่วนใหญ่ในปัจจุบันและตัวแทนผู้ใช้บรรทัดคำสั่งรองรับ SNI
เดสก์ทอป
- Chrome 5 หรือสูงกว่า
- Chrome 6 หรือสูงกว่าบน Windows XP
- Firefox 2 หรือสูงกว่า
- Internet Explorer 7 หรือสูงกว่าทำงานบน Windows Vista / Server 2008 หรือสูงกว่า
- Internet Explorer บน Windows XP ไม่รองรับ SNI โดยไม่คำนึงถึงรุ่น IE
- Konqueror 4.7 หรือสูงกว่า
- Opera 8 หรือสูงกว่า (อาจต้องเปิดใช้งาน TLS 1.1 เพื่อให้สามารถใช้งานได้)
- Safari 3.0 บน Windows Vista / Server 2008 หรือสูงกว่าหรือ Mac OS X 10.5.6 หรือสูงกว่า
โทรศัพท์มือถือ
- เบราว์เซอร์ Android บน Honeycomb 3.0 หรือสูงกว่า
- iOS Safari บน iOS 4 หรือสูงกว่า
- Windows Phone 7 หรือสูงกว่า
บรรทัดคำสั่ง
- cURL 7.18.1 ขึ้นไป
- wget 1.14 หรือสูงกว่า (การแจกแจงอาจมี backported patchสำหรับการรองรับ SNI)
ไม่สนับสนุน
- เบราว์เซอร์ BlackBerry
- Internet Explorer (ทุกรุ่น) บน Windows XP
(หมายเหตุ: ข้อมูลบางส่วนสำหรับคำตอบนี้ได้มาจากWikipedia )