2013-04-03 19 views
22

Tôi đã đọc một chút về chứng chỉ SSL và đặc biệt tôi đã đọc chứng chỉ SSL "yêu cầu địa chỉ IP chuyên dụng". Bây giờ, tôi không chắc chắn về ý nghĩa của điều này; có nghĩa là chứng chỉ yêu cầu một địa chỉ IP chuyên biệt tách biệt với địa chỉ IP được sử dụng cho giao tiếp HTTP bình thường, hoặc chỉ rằng nó không thể chia sẻ địa chỉ IP với các chứng chỉ SSL khác?Chính xác thì "mọi chứng chỉ SSL yêu cầu một IP chuyên dụng" có nghĩa là gì?

Để làm rõ, tôi có VPS có địa chỉ IP chuyên dụng. VPS đang lưu trữ khá nhiều trang web khác nhau, bao gồm một số tên miền phụ của trang web chính, nhưng chỉ trang web chính và tên miền phụ yêu cầu SSL. Tôi có thể chỉ cần mua chứng chỉ SSL cho * .example.com bằng địa chỉ IP hiện tại của mình hay tôi cần có một chứng chỉ tách biệt với các trang web khác trên VPS? Hoặc thậm chí tệ hơn, tôi có cần phải có một cái tách biệt với tất cả lưu lượng HTTP trên máy chủ không? Hãy nhớ rằng không có trang web nào khác cần SSL.

Cảm ơn bạn đã giải thích rõ về chủ đề.


Edit: Một số nguồn tin cho những lo lắng của tôi:

http://symbiosis.bytemark.co.uk/docs/symbiosis.html#ch-ssl-hosting

Is it necessary to have dedicated IP Address to install SSL certificate?

Trả lời

34
  1. Không có điều nào như "chứng chỉ SSL". Thuật ngữ này là gây hiểu nhầm. X.509 chứng chỉ có thể được phát hành cho các mục đích khác nhau (như được xác định bằng cách sử dụng khóa và sử dụng khóa mở rộng "thuộc tính"), đặc biệt để bảo mật các phiên SSL/TLS.

  2. Chứng chỉ không yêu cầu bất kỳ điều gì liên quan đến ổ cắm, địa chỉ và cổng vì chứng chỉ là dữ liệu thuần túy.

  3. Khi bảo mật một số kết nối với TLS, bạn thường sử dụng chứng chỉ để xác thực máy chủ (và đôi khi máy khách). Có một máy chủ cho mỗi IP/Cổng, vì vậy thường không có vấn đề gì đối với máy chủ để chọn chứng chỉ sẽ sử dụng.

    HTTPS là ngoại lệ — một số tên miền khác nhau có thể tham chiếu đến một IP và ứng dụng khách (thường là trình duyệt) kết nối với cùng một máy chủ cho các tên miền khác nhau. Tên miền được chuyển đến máy chủ trong yêu cầu, trong đó đi sau khi bắt tay TLS.

    Đây là nơi phát sinh sự cố - máy chủ web không biết phải xuất trình chứng chỉ nào. Để giải quyết một tiện ích mở rộng mới này đã được thêm vào TLS, có tên SNI (Chỉ dẫn tên máy chủ). Tuy nhiên, không phải tất cả khách hàng đều hỗ trợ nó. Vì vậy, nói chung nó là một ý tưởng tốt để có một máy chủ chuyên dụng cho mỗi IP/Port cho mỗi tên miền. Nói cách khác, mỗi miền, mà khách hàng có thể kết nối bằng HTTPS, phải có địa chỉ IP riêng của mình (hoặc cổng khác, nhưng đó không phải là thông thường).

+1

Chờ, [SNI được hỗ trợ rộng rãi ngay] (http://stackoverflow.com/a/6106500/632951)? Tại sao mỗi miền lại cần IP của riêng mình? – Pacerier

+1

@Pacerier Không, SNI không được hỗ trợ rộng rãi như nó có vẻ. Trên thực tế cho đến khi '2014 TLS 1.1 không được hỗ trợ rộng rãi ở tất cả, với nhiều máy chủ sử dụng phiên bản cũ của OpenSSL mà chỉ bị rơi khi yêu cầu bao gồm TLS 1.1 hoặc 1.2. Ngoài ra, câu trả lời được tham chiếu đề cập đến hỗ trợ trình duyệt và quên rằng có nhiều ứng dụng khách HTTPS không phải là trình duyệt (trình duyệt IIRC là thiểu số của tất cả các máy khách HTTPS). Cuối cùng, nếu bạn đọc câu trả lời của tôi, tôi đã viết "không phải tất cả khách hàng đều hỗ trợ nó". Nếu bạn không quan tâm đến tính tương thích - không có vấn đề gì. –

+0

Bạn đã nói rằng SNI phải khắc phục sự cố rằng * "máy chủ web không biết chứng chỉ nào cần hiển thị" *. Điều này không có nghĩa là SNI phải được gửi ** trước ** bắt tay TLS như trái ngược với nó? – Pacerier

0

Giấy chứng nhận ssl tên commmon có để phù hợp với tên miền. Bạn không có bất kỳ điều kiện tiên quyết nào đối với địa chỉ IP, trừ khi đó là giới hạn do nhà cung cấp chứng chỉ hoặc phần mềm máy chủ http áp đặt.

Chỉnh sửa: nhìn vào web, có vẻ như tin đồn đã được lan truyền vì plugin ssl của Apache không có (ít nhất là không có trong năm 2002) bất kỳ cơ chế nào sử dụng chứng chỉ khác nhau dựa trên tên máy chủ . Trong kịch bản như vậy, bạn sẽ phải chạy hai máy chủ web Apache khác nhau trên hai địa chỉ IP khác nhau.

Dù sao trong cấu hình của bạn, bạn không nên gặp bất kỳ sự cố nào khi chỉ sử dụng một IP vì bạn không phải sử dụng hai chứng chỉ khác nhau (vì bạn định sử dụng chứng chỉ ký tự đại diện).

Tôi sẽ cố gắng định cấu hình máy chủ web với chứng chỉ tự ký trước khi chi tiền cho ip hoặc chứng chỉ thứ hai.

Chỉnh sửa 2: tài liệu tham khảo tài liệu hướng dẫn apache:

http://httpd.apache.org/docs/2.2/vhosts/name-based.html

Nó có vẻ như bây giờ (apache> = 2.2.12) nó được hỗ trợ

5

giấy chứng nhận SSL không yêu cầu một địa chỉ IP chuyên dụng . Chứng chỉ SSL lưu trữ một tên gọi là tên thông thường. Trình duyệt diễn giải tên chung này là tên DNS của máy chủ mà họ đang nói đến. Nếu tên chung không khớp với tên DNS của máy chủ mà trình duyệt đang nói đến, trình duyệt sẽ đưa ra cảnh báo.

Bạn có thể nhận được chứng chỉ ký tự đại diện được gọi là, có thể được chấp nhận cho tất cả các máy chủ trong một miền nhất định.

3

... theo dõi trên @ câu trả lời Eugene với biết thêm về vấn đề tương thích ...

Theo this page from namecheap.com SNI không hoạt động trên:

  • Windows XP + bất kỳ phiên bản Internet Explorer (6,7,8,9)
  • Internet Explorer 6 hoặc cũ hơn
  • Safari trên Windows XP
  • Trình duyệt BlackBerry
  • Windows Mobile lên đến 6,5
  • Trình duyệt Nokia Browser cho Symbian ít nhất là trên Series60
  • Opera Mobile cho Symbian ít nhất là trên Series60

trang web vẫn sẽ có sẵn thông qua HTTPS, nhưng một lỗi không khớp chứng chỉ sẽ xuất hiện.

Vì vậy, khi chúng tôi tham gia năm 2016, tôi sẽ liên kết để dán cổ ra và nói "Nếu bạn đang xây dựng trang web hiện đại anyway (không hỗ trợ trình duyệt cũ) và nếu dự án quá nhỏ không thể đủ khả năng một địa chỉ IP chuyên dụng, có thể bạn sẽ phải dựa vào SNI. " Tất nhiên, có hàng ngàn chuyên gia sẽ không đồng ý với điều này, nhưng chúng tôi đang nói về việc là thực tế, không hoàn hảo.

Các vấn đề liên quan