หลายโดเมนที่มี SSL ใน IP เดียวกัน


คำตอบ:


28

ฉันคิดว่าเป็นความคิดที่ดีที่จะอธิบายว่าปัญหาคืออะไรกับโฮสต์เสมือนจริงและ SSL / TLS

เมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ apache ผ่าน HTTP คุณจะส่งชุดของส่วนหัว http พร้อม พวกเขามีลักษณะเช่นนี้:

GET /index.html HTTP/1.1
 Host: www.nice-puppies.com

หากคุณมี apache โฮสต์เสมือนจะดูที่ช่องโฮสต์จากนั้นดึงข้อมูล index.html ที่เหมาะกับคุณ ปัญหาคือเมื่อคุณเพิ่ม SSL / TLS เซิร์ฟเวอร์ตั้งค่าการเข้ารหัสก่อนที่คุณจะส่งคำขอ http ของคุณ ดังนั้นเซิร์ฟเวอร์จะไม่ทราบว่าคุณกำลังจะไปที่ www.nice-puppies.com หรือ www.evil-haxxor.com จนกว่าจะมีการตรวจสอบสิทธิ์ / การเข้ารหัสเสร็จสมบูรณ์ เซิร์ฟเวอร์ไม่สามารถเดาได้ (เนื่องจากการส่งใบรับรองผิดให้ข้อความผิดพลาดที่น่ารังเกียจ)

ทางออกหนึ่งคือใบรับรองไวด์การ์ด (ตามที่กล่าวไว้ข้างต้น) ซึ่งใช้ได้สำหรับ * .nice-puppies.com ด้วยวิธีนี้คุณสามารถใช้ใบรับรองเดียวกันสำหรับหลายโดเมน แต่คุณไม่มีใบรับรอง * .com (โอเคคุณทำได้ แต่มันจะไม่ดีสำหรับคนอื่น ๆ ) ดังนั้นโดยทั่วไปคุณจะต้องมี IP แยกต่างหากสำหรับแต่ละ โดเมน HTTPS


4
คำอธิบายที่ดี แต่คุณอาจมีใบรับรอง UC ที่จะช่วยให้หลายโดเมนในใบรับรอง
แซมโคแกน

1
ใช่คุณสามารถมี Unified Communications Certificates (UCC / UC certs) ฉันน่าจะพูดถึงพวกเขา เท่าที่ฉันเคยเห็นส่วนใหญ่จะใช้กับ Exchange / Office Communication Server และถ้าคุณใช้ใบรับรองเดียวกันสำหรับไซต์ต่าง ๆ คุณใช้ซีแมนทิกส์ x509 แต่พวกเขาทำงานในกอง TLS ส่วนใหญ่
pehrs

6
ยัง SNI ใบแจ้งยอดของคุณไม่ชัดเจนอีกต่อไป คำอธิบายของคุณมีความถูกต้องในอดีต แต่ไม่สะท้อนเทคโนโลยีปัจจุบันอีกต่อไป
วอร์เนอร์

4
SNI ยังไม่ทำงานกับ IE6 บน Windows XP ชนิดของข้อ จำกัด ค่าพิจารณาส่วนแบ่งการตลาด ฉันเชื่อว่าผู้ใช้ดั้งเดิมมีความสนใจในสิ่งที่จะเกิดขึ้นมากกว่าชุดแฮ็กที่มีอยู่รอบตัว
pehrs

พยายามแก้ไขข้อผิดพลาดการสะกดในตอนท้าย SHTTP ถึง HTTPS แต่การแก้ไขนี้ถูกปฏิเสธเนื่องจากการแก้ไขเล็กเกินไป
สจวร์ต

8

ทางออกที่แท้จริงของปัญหานี้คือ "การระบุชื่อเซิร์ฟเวอร์":

http://en.wikipedia.org/wiki/Server_Name_Indication

เป็นเพียงการเริ่มต้นที่จะเผยแพร่ในเซิร์ฟเวอร์และเว็บไคลเอ็นต์ดังนั้นจึงไม่ใช่สิ่งที่คุณสามารถใช้ได้ตอนนี้ แต่หวังว่าในอีกไม่กี่ปีข้างหน้านี้จะไม่เป็นปัญหาใหญ่


2

ปัญหาคือใบรับรอง SSL ถูกผูกไว้กับที่อยู่ IP ไม่ใช่ชื่อโฮสต์ เมื่อการเชื่อมต่อเข้ามาในที่อยู่ IP สำหรับการร้องขอ HTTPS การดำเนินการครั้งแรกคือการสร้างการสื่อสาร SSL โดยส่งผ่านใบรับรองเซิร์ฟเวอร์และ / หรือใบรับรองไคลเอ็นต์ ในระหว่างขั้นตอนนี้ของการเชื่อมต่อจับมือเซิร์ฟเวอร์ Apache ไม่มีทางรู้ว่าสิ่งที่ร้องขอจะผ่านมาสำหรับ สิ่งนี้แตกต่างกันสำหรับทราฟฟิก HTTP (ไม่ใช่ SSL) เนื่องจากหลังจากการเชื่อมต่อสำเร็จแล้วเซิร์ฟเวอร์ Apache สามารถกำหนดค่าโฮสต์เสมือนที่จะใช้หากไคลเอนต์ส่งHostส่วนหัวหรือมิฉะนั้นจะส่งไปยังโฮสต์เสมือนแรกที่กำหนดค่า

หากคุณมีโฮสต์เสมือนหลายรายการภายใต้โดเมนเดียวกันคุณสามารถตั้งค่าใบรับรองตัวแทนเดียวในที่อยู่ IP และมีโฮสต์เสมือนหลายรายการที่มีชื่อเซิร์ฟเวอร์ที่แตกต่างกัน อย่างไรก็ตามหากชื่อเซิร์ฟเวอร์เหล่านั้นไม่ได้อยู่ภายใต้ชื่อโดเมนเดียวกันพวกเขาจะสร้างข้อผิดพลาดเซิร์ฟเวอร์ลูกค้า สิ่งนี้จะทำงานได้เนื่องจากใบรับรองไวด์การ์ดจะใช้ได้กับชื่อโฮสต์ทั้งหมดภายใต้ชื่อโดเมนนั้น คุณจะต้องมีที่อยู่ IP อื่นหากชื่อโดเมนแตกต่างจากใบรับรองแรกที่กำหนดไว้สำหรับที่อยู่ IP นั้นจะเป็นที่อยู่ที่แสดงสำหรับการเชื่อมต่อไคลเอนต์


1

สามารถเพิ่มลงในใบรับรอง SSL เดียวได้หนึ่งรายการเป็น SAN (ชื่อสำรองของหัวเรื่อง) ในความสามารถของฉันฉันต้องขอใบรับรอง sll ขององค์กร ฉันใช้ globalsign


1

ที่จริงแล้วด้วยซอฟต์แวร์ที่ทันสมัยคุณสามารถให้บริการไซต์ HTTPS หลายแห่งผ่านที่อยู่ IP เดียวโดยใช้คุณสมบัติใหม่ที่เรียกว่า 'SNI - บ่งชี้ชื่อเซิร์ฟเวอร์'

http://en.wikipedia.org/wiki/Server_Name_Indication

http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

ฉันยังไม่ได้ใช้สิ่งนี้ด้วยตนเอง แต่ฟังดูดีสำหรับไซต์ภายในและอินทราเน็ต เบราว์เซอร์ที่ทันสมัยส่วนใหญ่รองรับ SNI IE6 ไม่รองรับ SNI แต่ IE7 ไม่รองรับ

(การแก้ไข: 20100426 - ไม่รองรับ SNI บน Windows XP เลย Windows Vista ขึ้นไปรองรับ SNI โปรดดู "ส่วน 2.2.3" ที่http://msdn.microsoft.com/en-us/library/dd208005% 28v = PROT.13% 29.aspx # id8 )


2
ด้วย IE การสนับสนุนไม่ได้มาจากเวอร์ชัน IE แต่มาจากเวอร์ชัน OS พื้นฐาน Vista ขึ้นไปรองรับ SNI XP ไม่เช่นนั้นด้วย IE8 บน XP คุณจะไม่ได้ SNI
Nasko

1

ฉันกำลังทำงานกับปัญหาเดียวกัน จากการทดสอบของฉัน IE7 และใหม่กว่า (เฉพาะใน Win7 & Vista) / Chrome / Firefox / Safari / Opera รองรับ "Server Name Indication" ในความเป็นจริงถ้าเบราว์เซอร์ใช้ Tsl 1.0 มันรองรับ "Server Name Indication"


0

ฉันคิดว่า OP กำลังถามว่าจะเกิดอะไรขึ้นถ้าเขาเพิ่มใบรับรอง SSL ให้กับ IP ที่มีโฮสต์เสมือนมากมาย หากไม่มี virtualhost อื่น ๆ ใช้ใบรับรอง SSL เขาก็ควรจะชัดเจน


ฉันก็งงกับคำถาม ชื่อของ Q บอกว่าสีดำเนื้อหาจะเป็นสีขาว
Iraklis

นี่คือสีขาว
Iraklis


0

หากคุณจะพยายามเพิ่มสองใบรับรองใน IP เดียวกันจะมีเพียงใบรับรองการอ่านแรกเท่านั้นที่จะใช้ทุกที่ หนึ่ง IP - หนึ่งใบรับรอง SSL

หากคุณต้องการได้รับใบรับรอง SSL เพิ่มเติมจาก IP เดียวกันให้ลองรับหลายโดเมน (เรียกว่า UCC - ลองดูที่ @ godaddy ) หรือใบรับรองตัวแทน (แพงกว่า)


คุณหมายถึงใบรับรองที่เพิ่มเข้ามาก่อนใน Apache conf จะใช้สำหรับทั้งคู่หรือไม่
nitins

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