เซิร์ฟเวอร์สามารถเสนอใบรับรอง TLS มากกว่าหนึ่งรายการได้หรือไม่
เซิร์ฟเวอร์สามารถ สนับสนุน ใบรับรอง TLS มากกว่าหนึ่งใบ แต่ก็ทำได้เพียง เสนอ ใบรับรอง TLS เดียวในการจับมือ TLS กับไคลเอนต์ AFAIK ซึ่งเป็นขีดจำกัดที่กำหนดไว้ในโปรโตคอล TLS (การจับมือกัน) อาร์เอฟซี 5246
ความสามารถในการ สนับสนุน ใบรับรองหลายใบถูกใช้บ่อยที่สุดเมื่อคุณมีชื่อโดเมนหลายชื่อที่ชี้ไปที่เซิร์ฟเวอร์เดียวกัน
การระบุชื่อเซิร์ฟเวอร์ ส่งชื่อโฮสต์ของเซิร์ฟเวอร์ในการจับมือ TLS ที่ทำโดยไคลเอนต์ ซึ่งช่วยให้เซิร์ฟเวอร์เลือกใบรับรองที่ตรงกันที่สุดเพื่อใช้สำหรับการเชื่อมต่อนั้น
เช่น. เซิร์ฟเวอร์สามารถใช้ใบรับรองสำหรับ www.example.com
เมื่อไคลเอ็นต์ระบุว่าต้องการเชื่อมต่อ www.example.com
และสามารถใช้ใบรับรองอื่น (หรือค่าเริ่มต้น) เมื่อไคลเอ็นต์เชื่อมต่อกับที่อยู่ IP เท่านั้น ไม่มีชื่อโฮสต์หรือชื่อโฮสต์อื่นในข้อความ ClientHello
นอกจากชื่อเซิร์ฟเวอร์จากข้อความการจับมือ TLS ของ ClientHello แล้ว เซิร์ฟเวอร์สามารถกำหนดค่าให้ใช้พารามิเตอร์อื่นเพื่อเลือกใบรับรองอื่นได้
ตัวอย่างเช่น เมื่อระหว่าง TLSv1.2 handshake ไคลเอ็นต์ระบุว่าการตั้งค่าแรกคือใช้เส้นโค้งวงรีแทน RSA คีย์/ใบรับรอง ECDSA สามารถเสนอได้ และสำหรับไคลเอ็นต์ที่ไม่ต้องการ ใบรับรอง RSA สามารถเสนอแทนได้
ดูตัวอย่าง https://www.haproxy.com/blog/serving-ecc-and-rsa-certificates-on-same-ip-with-haproxy/ และ/หรือ https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatefile
คุณสามารถทำเช่นเดียวกันกับไคลเอนต์รุ่นเก่าที่ไม่รองรับรหัสที่สูงกว่า TLSv1.0
แต่เมื่อเซิร์ฟเวอร์เลือกใบรับรองแล้ว จะไม่มีทางเลือกอื่น ไคลเอ็นต์อาจยอมรับหรือปฏิเสธใบรับรองที่เสนอให้