Máy chủ ảo SSL SSL trên một IP bằng chứng chỉ UCC / SAN


11

Tôi cần lưu trữ một số máy chủ ảo Apache có SSL từ một IP duy nhất.

Bây giờ - tôi hiểu rằng vì SSL bao bọc xung quanh yêu cầu HTTP, nên không có cách nào để biết máy chủ nào đang được yêu cầu cho đến khi khóa công khai được gửi đến máy khách trước. Điều này về cơ bản phá vỡ khả năng của máy chủ ảo SSL bằng chứng chỉ SSL tiêu chuẩn.

Tôi đã nhận được Chứng chỉ Truyền thông hợp nhất (UCC), còn được gọi là chứng chỉ Tên thay thế chủ đề (SAN). Điều này cho phép tôi phục vụ cùng một chứng chỉ cho nhiều tên miền.

Tôi muốn đây là chứng chỉ được Apache phục vụ cho bất kỳ yêu cầu SSL nào - và sau đó để Apache giải quyết máy chủ ảo như bình thường, sau khi mã hóa được thiết lập.

Tôi nên cấu hình Apache cho việc này như thế nào? Tôi đã cố gắng nghiên cứu làm thế nào điều này có thể được thực hiện, nhưng tất cả những gì tôi có thể tìm thấy là những trích dẫn nói rằng nó có thể, nhưng không có chi tiết cụ thể:


wiki.apache.org/httpd/NameBasingSSLVhostsWithSNI

Mặc dù Apache có thể đàm phán lại kết nối SSL sau khi thấy tên máy chủ trong yêu cầu (và không), nhưng đã quá muộn để chọn chứng chỉ máy chủ phù hợp để sử dụng để khớp với tên máy chủ yêu cầu trong lần bắt tay ban đầu, dẫn đến cảnh báo / lỗi trình duyệt về chứng chỉ có tên máy chủ sai trong họ.

serverfault.com/questions/48334/apache-virtual-hosts-with-ssl

Ngẫu nhiên, có thể có nhiều máy chủ ảo có tên được bảo mật SSL trên một địa chỉ IP duy nhất - tôi thực hiện trên trang web của mình - nhưng nó tạo ra tất cả các loại cảnh báo trong nhật ký Apache và cảnh báo chứng chỉ trong trình duyệt. Tôi chắc chắn sẽ không đề xuất nó cho một trang web sản xuất cần phải trông sạch sẽ. -David ngày 31 tháng 7 lúc 4:58

www.digicert.com/subject-alternative-name.htm

Máy chủ ảo Nhiều trang web SSL trên một địa chỉ IP. Lưu trữ nhiều trang web hỗ trợ SSL trên một máy chủ thường yêu cầu một địa chỉ IP duy nhất cho mỗi trang, nhưng chứng chỉ có Tên thay thế chủ đề có thể giải quyết vấn đề này. Microsoft IIS 6 và Apache đều có thể truy cập các trang web HTTPS của máy chủ ảo bằng cách sử dụng SSL Truyền thông hợp nhất, còn được gọi là chứng chỉ SAN.


Xin vui lòng giúp đỡ.

Câu trả lời:


13

Tôi đã thử nghiệm điều này trên ví dụ apache 2.2,14 và nó hoạt động tốt:

Sử dụng chỉ thị NameVirtualhost (tới cổng.conf):

NameVirtualHost *:443

xác định vhost của bạn:

<VirtualHost *:443>
  ServerName www.siteA.com
  DocumentRoot "/opt/apache22/htdocs/siteA"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>
<VirtualHost *:443>
  ServerName www.siteB.com
  DocumentRoot "/opt/apache22/htdocs/siteB"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>

Tôi đã sử dụng liên kết này như là một tài nguyên.


1
Câu trả lời là đúng. Một điều khiến tôi mất thời gian LOOOONNNNNNGGGGG là tôi đã có một lỗi đánh máy trong đó tôi có <Virtual *:433>... cổng chính xác là 443! Ugh, hàng giờ cuộc đời tôi mất đi điều này ... Hy vọng nỗi đau của tôi không phải là vô ích và điều này giúp được ai đó ...
Nick P.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.