Máy chủ có thể cung cấp nhiều chứng chỉ TLS không?
Một máy chủ có thể hỗ trợ nhiều hơn một chứng chỉ TLS. Nhưng nó chỉ có thể phục vụ một chứng chỉ TLS duy nhất trong quá trình bắt tay TLS với máy khách. AFAIK đó là giới hạn được đặt trong giao thức TLS (bắt tay) RFC 5246
khả năng để hỗ trợ nhiều chứng chỉ được sử dụng thường xuyên nhất khi bạn có nhiều tên miền khác nhau đều trỏ đến cùng một máy chủ.
Chỉ định tên máy chủ gửi tên máy chủ của máy chủ trong quá trình bắt tay TLS do máy khách thực hiện. Điều đó cho phép máy chủ chọn chứng chỉ phù hợp nhất để sử dụng cho kết nối đó.
I E. sau đó máy chủ có thể sử dụng chứng chỉ cho www.example.com
khi máy khách chỉ ra rằng nó muốn kết nối với www.example.com
và nó có thể sử dụng chứng chỉ khác (hoặc mặc định) khi máy khách chỉ kết nối với địa chỉ IP, không có tên máy chủ hoặc tên máy chủ khác trong thông báo ClientHello.
Ngoài tên máy chủ từ thông báo bắt tay ClientHello TLS, máy chủ có thể được định cấu hình để sử dụng các tham số khác để chọn chứng chỉ khác.
Ví dụ: khi trong quá trình bắt tay TLSv1.2, ứng dụng khách chỉ ra rằng ưu tiên đầu tiên là sử dụng các đường cong elip thay vì RSA , thì có thể cung cấp khóa/chứng chỉ ECDSA và đối với những ứng dụng không sử dụng, chứng chỉ RSA có thể được cung cấp thay thế.
Xem ví dụ https://www.haproxy.com/blog/serving-ecc-and-rsa-certificates-on-same-ip-with-haproxy/ và/hoặc https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatefile
Bạn có thể thực hiện tương tự với các ứng dụng khách cũ không hỗ trợ mật mã trên TLSv1.0
Nhưng một khi chứng chỉ đã được máy chủ chọn, sẽ không có dự phòng, khách hàng sẽ chấp nhận hoặc từ chối chứng chỉ được cung cấp.