Chỉnh sửa tháng 11 năm 2014: câu trả lời ban đầu không chính xác và chưa hoàn tất; nó cần làm mới! đây rồi.
Về cơ bản, có hai trường hợp
- Bạn sở hữu một giấy chứng nhận ký tự đại diện (hoặc giấy chứng nhận đa lĩnh vực)
Trong trường hợp này, bạn có thể sử dụng một vài vhosts nghe cùng địa chỉ IP/https port, và cả hai vhosts sử dụng cùng một chứng chỉ (nghe trên tất cả các giao diện), ví dụ
server {
listen 443;
server_name webmail.example.com;
root /var/www/html/docs/sslexampledata;
ssl on;
ssl_certificate /var/www/ssl/samecertif.crt;
ssl_certificate_key /var/www/ssl/samecertif.key;
...
}
server {
listen 443;
server_name webmail.beispiel.de;
root /var/www/html/docs/sslbeispieldata;
ssl on;
ssl_certificate /var/www/ssl/samecertif.crt;
ssl_certificate_key /var/www/ssl/samecertif.key;
...
}
hoặc bạn trường hợp cụ thể, có cả lĩnh vực phục vụ bởi cùng một dữ liệu
server {
listen 443;
server_name webmail.example.com webmail.beispiel.de; # <== 2 domains
root /var/www/html/docs/sslbeispieldata;
ssl on;
ssl_certificate /var/www/ssl/samecertif.crt;
ssl_certificate_key /var/www/ssl/samecertif.key;
...
}
- Bạn có hai (+) chứng chỉ khác nhau
Các trường hợp trên (một IP cho tất cả các chứng chỉ) sẽ vẫn hoạt động với các trình duyệt hiện đại thông qua Chỉ dẫn tên máy chủ. SNI có trình khách (trình duyệt) gửi cho máy chủ lưu trữ nó muốn tiếp cận trong tiêu đề yêu cầu, cho phép máy chủ (nginx) xử lý vhosts trước khi phải xử lý chứng chỉ. Cấu hình giống như trên, ngoại trừ mỗi vhost có chứng chỉ cụ thể, crt và khóa.
(nginx support SNI from 0.9.8f, check your nginx server is SNI compliant)
(also, SF talks about SNI and browser support)
Ngược lại, nếu bạn muốn tiếp cận các trình duyệt cũ là tốt, bạn cần vài vhosts nghe mỗi một khác nhau địa chỉ IP/https cổng, ví dụ
server {
listen 1.2.3.4:443; # <== IP 1.2.3.4
server_name webmail.example.com;
root /var/www/html/docs/sslexampledata;
ssl on;
ssl_certificate /var/www/ssl/certifIP1example.crt;
ssl_certificate_key /var/www/ssl/certifIP1example.key;
...
}
server {
listen 101.102.103:443; <== different IP
server_name webmail.beispiel.de;
root /var/www/html/docs/sslbeispieldata;
ssl on;
ssl_certificate /var/www/ssl/certifIP2beispiel.crt;
ssl_certificate_key /var/www/ssl/certifIP2beispiel.key;
...
}
Lý do chính xác là explained here.
Shure, đây là giải pháp nhưng không phải là giải pháp hay. Thay đổi một vhost có nghĩa là thay đổi một vhost khác. Và ít nhất sẽ có 4 vhosts ... – PascalTurbo
Vui lòng xem cập nhật. Tôi khuyên bạn nên giải pháp đầu tiên mặc dù. –
Xem http://nginx.org/en/docs/http/configuring_https_servers.html # certificate_with_several_names – barbolo