ฉันต้องใช้ใบรับรอง SSL แยกต่างหากสำหรับการเปลี่ยนเส้นทาง DNS หรือไม่


17

ฉันกำลังใช้งานแอปพลิเคชันหลายผู้เช่าที่แอปพลิเคชันของฉันโฮสต์และให้บริการเอกสารทางเทคนิคสำหรับผลิตภัณฑ์ของผู้เช่า

ตอนนี้วิธีการที่ฉันได้รับการพิจารณาเป็น - ฉันเป็นเจ้าภาพจัดการเอกสารที่docs.<tenant>.mycompany.comและขอให้ผู้เช่าของฉันไปที่การตั้งค่าระเบียน CNAME DNS ไปยังจุดที่จะdocs.tenantcompany.comdocs.<tenant>.mycompany.com

ฉันต้องการให้เว็บไซต์เปิดใช้งาน SSL ด้วยใบรับรองของผู้เช่าของฉัน ฉันต้องการเข้าใจว่า บริษัท ผู้เช่าของฉันมีใบรับรองไวด์การ์ด SSL จะทำงานกับการตั้งค่านี้หรือจะต้องซื้อใบรับรอง SSL ใหม่docs.tenantcompany.comหรือไม่


เพื่อชี้แจงคุณมี wildcard สำหรับ * .mycompany.com หรือไม่
zymhan

@ WildVelociraptor ใช่ฉันมีไวลด์การ์ด SSL ใบรับรองสำหรับ*.mycompany.com
codematix

@codematix เพื่อหลีกเลี่ยงข้อสงสัยใบรับรองตัวแทนสำหรับ*.example.com จะไม่ตรงกัน docs.tenantname.example.com ! อักขระตัวแทนนั้นเหมาะสำหรับ 'โดเมนย่อย' หนึ่งรายการเท่านั้น มันจะจับคู่ docs-tenantname.example.comตัวอย่างเช่น S3 ของ Amazon เป็นตัวอย่างที่ดีในเรื่องนี้: *.s3.amazonaws.comใบรับรองล้มเหลวเมื่อเข้าถึงที่ฝากข้อมูลที่มีระยะเวลาเช่นwww.example.com(ซึ่งลงท้ายด้วยชื่อโฮสต์www.example.com.s3.amazonaws.comดังนี้); ต้องใช้ชื่อฝากข้อมูลสำหรับ S3 เว็บโฮสติ้ง
Calrion

โปรดทราบว่าการใช้ cname ที่ชี้ไปยังเซิร์ฟเวอร์ของคุณหมายความว่าคุณสามารถหลีกเลี่ยงความต้องการใบรับรองที่ผู้เช่ามอบให้ ผู้ให้บริการออกใบรับรองบางราย (รวมถึงletsencrypt.org ) สนับสนุนการตรวจสอบความเป็นเจ้าของโดเมนผ่าน https ตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดวิธีนี้เหนือกว่ามาก (ได้กล่าวถึงแล้วในserverfault.com/a/765957/4480 ) เป็นการดีที่จะอนุญาตให้ผู้เช่าของคุณมอบใบรับรองของตัวเอง (แม้ว่าการสร้างด้วยตัวคุณเองจะง่ายกว่าสำหรับผู้เช่า) แต่พวกเขาไม่ควรให้ใบรับรองแบบไวด์การ์ด
ไบรอัน

คำตอบ:


39

ชื่อใบรับรองจะต้องตรงกับสิ่งที่ผู้ใช้ป้อนในเบราว์เซอร์ไม่ใช่ระเบียน DNS 'สุดท้าย' หากผู้ใช้ป้อนdocs.tenantcompany.comใบรับรอง SSL ของคุณจะต้องครอบคลุม

ถ้าdocs.tenantcompany.comเป็น CNAME เพื่อfoo.example.comใบรับรองไม่ได้จะต้องครอบคลุมเพียงfoo.example.comdocs.tenantcompany.com


25

คำตอบของ Jason ถูกต้อง แต่เพียงเพื่อชี้แจงคำศัพท์เล็กน้อยที่นี่ "การเปลี่ยนเส้นทาง DNS" เป็นชื่อเรียกที่ไม่ถูกต้อง DNS มีระเบียน CNAME (นามแฝง aka) ซึ่งเป็นชื่อที่ชี้ไปยังชื่ออื่น แต่มันไม่ใช่การเปลี่ยนเส้นทาง การแปลจากชื่อเป็นชื่อเป็น IP ทั้งหมดเกิดขึ้นในพื้นหลังและเบราว์เซอร์ของคุณใส่ใจเฉพาะชื่อเริ่มต้นเท่านั้น

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


2
ขอบคุณสำหรับการแก้ไขฉัน คุณถูกต้องไม่ใช่การเปลี่ยนเส้นทาง แต่เป็นนามแฝงของ CNAME
codematix

ลูกค้าของฉันมีกับโดเมนServer A ฉันทำเว็บไซต์สำหรับเขาและเก็บรักษาไว้ในเว็บไซต์example.com Server Bลูกค้าของฉันกำหนดค่า DNS ของเขาA Recordซึ่งจุดdog.example.comที่อยู่ IP Server Bของเซิร์ฟเวอร์ของฉัน ตอนนี้ลูกค้าของฉันจะได้รับ SSL dog.example.comสำหรับ คำถามของฉันคือลูกค้าของฉันต้องให้การรับรอง SSL แก่ฉันServer Bหรือไม่ หรือเขาแค่ต้องใส่มันเข้าไปServer A? หรือเราควรทำอะไรอีก เราทั้งคู่สับสนเกี่ยวกับเรื่องนี้ขอบคุณ!
2875289

1
หากบันทึก A dog.example.comชี้ไปที่ IP ของเซิร์ฟเวอร์ของคุณโดยตรงแล้วใช่ เซิร์ฟเวอร์ของคุณต้องมีใบรับรองและคีย์ส่วนตัวสำหรับชื่อนั้น เซิร์ฟเวอร์ A ในตัวอย่างของคุณไม่เกี่ยวข้อง
Ryan Bolger

@ RyanBolger ใช่เหมือนที่คุณพูด ลูกค้าของฉันใช้ใบรับรองdog.example.comและส่งใบรับรองและรหัสส่วนตัวให้ฉัน ฉันวางสิ่งเหล่านั้นไว้ภายในServer Bและกำหนดค่า Nginx ให้ใช้งานได้ และทุกอย่างทำงานได้ดีในขณะนี้ ขอบคุณ!
2875289

เพียงแค่ทราบเกี่ยวกับประเด็นทางเทคนิค เนื่องจากขณะนี้มีระเบียน "ALIAS" ฉันจะไม่พูดว่า CNAME เป็นชื่อแทนเช่นกัน]
Garet Claborn

9

ฉันต้องการที่จะเข้าใจถ้าฉัน บริษัท ผู้เช่าของฉันมีใบรับรอง SSL แบบตัวแทนจะทำงานกับการตั้งค่านี้หรือจะต้องซื้อใบรับรอง SSL ใหม่docs.tenantcompany.comหรือไม่

คำตอบสั้น ๆ :ไม่หาก บริษัท ผู้เช่าของคุณมีชื่อตัวแทนอยู่*.tenantcompany.comนั่นก็เพียงพอที่จะติดตั้งบนเซิร์ฟเวอร์ของคุณเพื่อให้ครอบคลุมการเข้าถึงผ่านชื่อนั้น ไม่ว่าคุณจะต้องการทำสิ่งนี้หรือไม่ก็เป็นอีกเรื่องหนึ่ง

ใบรับรองในชื่อdocs.<tenant>.mycompany.com(เช่นใบรับรองโดยตรงหรือไวด์การ์ด*.<tenant>.mycompany.com) นั้นไม่มีประโยชน์หากมีการเข้าถึงผ่านdocs.tenantcompany.comชื่อ


คำตอบอีกต่อไป

สมมติว่าคุณเรียกดูhttps://docs.tenantcompany.comในเบราว์เซอร์ที่เหมาะสม เบราว์เซอร์รัน TLS ผ่านโปรโตคอล HTTP มันใส่ใจเป็นพิเศษเกี่ยวกับสองสิ่ง; ที่:

  • ระบบย่อย DNS ของเบราว์เซอร์และระบบปฏิบัติการจะส่งคืนที่อยู่ IP ของโฮสต์ที่เหมาะสมซึ่งใช้งานเว็บเซิร์ฟเวอร์บนพอร์ตที่เหมาะสมที่อื่นบนเครือข่ายท้องถิ่นหรืออินเทอร์เน็ต สำหรับทราฟฟิก HTTPS (ปลอดภัย) พอร์ตเริ่มต้นจะอยู่443นอกเสียจากว่าจะถูกแทนที่ใน URL

  • เมื่อจับมือ TLSเกิดขึ้นระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ระยะไกลเซิร์ฟเวอร์จะแสดงใบรับรองที่เชื่อถือได้ซึ่งอนุญาตให้ใช้บริการ TLS ตามที่อยู่ที่ร้องขอ ( docs.tenantcompany.com)

DNS

เบราว์เซอร์เห็น DNS เป็นกล่องดำ มันทำการเรียกไปยังไลบรารี DNS ที่เหมาะสมเพื่อร้องขอการแมปจากชื่อโดเมน (FQDN) ที่ผ่านการรับรองอย่างง่ายเข้ากับที่อยู่ IP ที่เหมาะสม (v4 หรือ v6) ไม่สนใจว่าจะรับที่อยู่ IP นั้นได้อย่างไร หากมีCNAMEชื่อแทน20 รายการใน DNS ระหว่างระเบียนต้นฉบับและAหรือAAAAระเบียนตัวแก้ไข DNS จะติดตามพวกเขาจนกว่าจะได้รับที่อยู่ IP

TLS

เมื่อเบราว์เซอร์ได้ทำการจับมือกัน TLSจะต้องตรวจสอบว่าเซิร์ฟเวอร์ที่มีการติดต่อสื่อสารกับผู้มีอำนาจที่จะให้บริการเว็บไซต์ที่ปลอดภัยใน FQDN docs.tenantcompany.comร้องขอ:

โปรดจำไว้ว่า: เบราว์เซอร์ไม่สนใจdocs.<tenant>.mycompany.com- ตัวแก้ไข DNS ได้ตัดทอนความรู้ทั้งหมดเกี่ยวกับการอ้อมผ่านCNAMEบันทึก

วิธีการอนุญาตให้เซิร์ฟเวอร์ของเราให้บริการเซสชันที่ปลอดภัยdocs.tenantcompany.comนั้นเป็นวิธีการของใบรับรอง SSL ซึ่งลงนามโดยหน่วยงานที่มีความเชื่อถือก่อนหน้านี้ได้รับการจัดตั้งขึ้นในที่เก็บใบรับรองหลักของเบราว์เซอร์ นี่ไม่ใช่การพิสูจน์ตัวตนที่แข็งแกร่งที่สุดของเซิร์ฟเวอร์ต่อลูกค้าเสมอ - ล็อตอาจผิดพลาดในรุ่น CA ที่รวมศูนย์ แต่มันเป็นสิ่งที่ดีที่สุดที่เรามีในขณะนี้

มีคำเตือนอีกสองข้ออยู่ที่นี่:

การแชร์คีย์

ผู้ค้าใบรับรอง SSL เชิงพาณิชย์จำนวนมากจะลงนามในคำขอลงนามเดียวเท่านั้นซึ่งจะผูกใบรับรองไวด์การ์ดกับคีย์ส่วนตัวเดียวได้อย่างมีประสิทธิภาพ บริษัท ผู้เช่าอาจไม่สะดวกในการแบ่งปันสิ่งนี้นอกองค์กรเนื่องจากใครก็ตามที่ครอบครองคีย์ส่วนตัวสามารถสื่อสารกับระบบความปลอดภัยอื่น ๆ ของ บริษัท ผู้เช่าได้อย่างชัดเจน

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

ปลอม

หาก บริษัท ผู้เช่าให้สำเนาใบรับรองตัวแทน (ด้วยการแบ่งปันคีย์ส่วนตัวหรือลงนาม CSR ของคุณเอง) คุณสามารถปลอมแปลงเป็นการ<anydomain>.tenantcompany.comแยกการป้องกันที่สำคัญซึ่งทำให้มั่นใจถึงความสมบูรณ์ของเซิร์ฟเวอร์ที่ระบุในtenantcompany.comDNS namespace นี่อาจเป็นตำแหน่งที่ไม่ดีสำหรับทั้งคุณและ บริษัท ผู้เช่าที่จะเข้าร่วมจากมุมมองทางกฎหมาย / ความรับผิด


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