Tôi nghĩ bạn có thể làm điều này, nhưng không phải theo cách bạn đang cố gắng thực hiện.
Chứng chỉ SSL là một câu lệnh ràng buộc khóa mã hóa công khai với cấu trúc X.500 bao gồm một phần tử CN hoặc Tên chung; chứng chỉ đã ký là một trong đó ràng buộc được chứng nhận có thể xác thực bởi cơ quan chứng nhận của bên thứ ba, sử dụng khóa công khai đã được biết đến cho người dùng cuối (ngăn xếp chứng chỉ của Cơ quan chứng nhận (CA) sống trong trình duyệt của bạn).
Khi bạn truy cập trang web được bảo mật SSL bằng trình duyệt, CN đã ký được trình duyệt biết. Những gì trình duyệt chọn để làm với nó là tùy thuộc vào trình duyệt. Các trình duyệt tôi biết so sánh nó với tên máy chủ được yêu cầu và lỗi nếu nó khác (hoặc nếu ràng buộc được chứng nhận đó không đứng vững để phân tích, ví dụ: chứng chỉ ký không được trình duyệt biết hoặc ràng buộc bị loại ra của ngày, nhưng đó là một vấn đề khác). Về nguyên tắc, không có gì ngăn bạn lấy chứng chỉ được ký công khai trong đó CN là địa chỉ IP không phải là FQDN (tên miền đủ điều kiện) [1], nhưng điều đó sẽ không làm cho trình duyệt so sánh CN với IP một cách kỳ diệu địa chỉ, thay vì với tên máy chủ được yêu cầu .
Tôi nghi ngờ cách đơn giản nhất để giải quyết vấn đề của bạn là bắt đầu CA của riêng bạn, việc này rất dễ thực hiện và có nhiều hướng dẫn công khai về; một là ở đây . Khi người dùng cuối của bạn nhập CA của bạn vào trình duyệt của họ, tất cả các chứng chỉ bạn đúc sẽ được chấp nhận là có thẩm quyền.
Sau đó, bạn có thể gặp vấn đề thứ hai là bạn muốn chạy nhiều trang NameVirtualhost trên một địa chỉ IP duy nhất. Điều này trong lịch sử không thể khắc phục được, vì (không giống như TLS) đàm phán SSL xảy ra trước bất kỳ điều gì khác trên một kết nối; nghĩa là, CN được nhúng trong chứng chỉ của bạn được biết đến và được sử dụng bởi, máy khách trước khi máy khách có thể nói máy chủ nào họ đang cố gắng kết nối.
Gần đây, một phần mở rộng giao thức có tên SNI (Chỉ định tên máy chủ) dường như đã được giới thiệu, cho phép máy khách và máy chủ cho biết rằng họ muốn thực hiện một số nội dung tên máy chủ trước khi chứng chỉ SSL được trình bày, cho phép một trong các tập hợp bên phải giấy chứng nhận sẽ được cung cấp bởi máy chủ. Rõ ràng điều này đòi hỏi apache 2.2.10, một phiên bản gần đây của OpenSSL và ( quan trọng là ) hỗ trợ phía khách hàng.
Vì vậy, nếu tôi phải làm những gì bạn đang cố gắng, tôi sẽ xem xét việc đúc chứng chỉ CA của riêng tôi, nói với người dùng cuối của tôi rằng họ phải sử dụng các trình duyệt hỗ trợ SNI và nhập chứng chỉ gốc CA của tôi, và cắt và ký chứng chỉ SSL của riêng tôi cho mỗi trang web bugtrack.
[1] OK, bạn có thể không tìm thấy ai sẽ làm điều đó, nhưng đó là một chi tiết thực hiện. Điều tôi đang cố gắng thể hiện ở đây là ngay cả khi bạn đã làm, nó sẽ không giải quyết được vấn đề của bạn.