Tôi đang kéo tóc ra khỏi đây. Các trang web như wix.com, squarespace.com ... v.v. có thể tạo trang web nhanh chóng và vẫn sử dụng SSL trên mỗi một trong số hàng triệu tên miền tùy chỉnh.Chứng chỉ SNI động
Tôi cố gắng làm điều tương tự, nhưng tôi không thể tìm ra cách họ làm điều đó!?
Các giải pháp hợp lý sẽ là trên Apache:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAlias *
UseCanonicalName Off
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/%0/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/%0/server.key
</VirtualHost></IfModule>
Nhưng khi tôi khởi động lại apache tôi nhận được một lỗi: SSLCertificateFile: file '/etc/apache2/ssl/%0/server.crt' không tồn tại hoặc trống rỗng
Ngay cả khi tôi tạo thư mục giả/ssl /% 0/với một số chứng chỉ giả ... nó vẫn sử dụng chứng chỉ giả (sai).
Tôi biết một số sẽ nhận được trên con ngựa cao của họ và hét lên rằng bạn không thể giải quyết tên máy chủ TRƯỚC KHI bắt tay TLS. Nhưng theo điều này post và những người khác:% 0 có thể được giải quyết với mod_vhost_alias vì tên máy chủ được gửi với SNI ...
Tôi biết điều này hoạt động: cách tiếp cận thứ hai là tạo một máy chủ ảo cho mỗi miền tùy chỉnh :
<VirtualHost *:443>
ServerName site111.ca
ServerAlias www.site111.ca
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile "/var/app/s3/ssl/site111.ca/certificate.crt"
SSLCertificateKeyFile "/var/app/s3/ssl/site111.ca/certificate.key"
SSLCertificateChainFile "/var/app/s3/ssl/site111.ca/certificate.chain"
</VirtualHost><VirtualHost *:443>
ServerName site222.ca
ServerAlias www.site222.ca
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile "/var/app/s3/ssl/site222.ca/certificate.crt"
SSLCertificateKeyFile "/var/app/s3/ssl/site222.ca/certificate.key"
SSLCertificateChainFile "/var/app/s3/ssl/site222.ca/certificate.chain"
tôi có thể tạo ra một hệ thống bẩn nơi tôi thêm một máy chủ ảo cho mỗi tên miền mới và tải lại apache mỗi ngày Eeewwww ... và một lần nữa: Apache cap số lượng host ảo để 256:/
Làm cách nào để thực hiện điều đó !? Có công nghệ nào khác có thể giúp tôi không? Nginx, Nodejs? Cảm ơn bạn đã dành thời gian.
Tại sao bạn cho rằng điều này cần phải là một phần của cấu hình máy chủ tĩnh? Bạn có thể tạo cấu hình khớp với ký tự đại diện và sau đó sử dụng ví dụ HTTP_HOST trong ứng dụng của bạn để quyết định loại tài nguyên nào cần phân phát. Ngoài ra, điều gì khiến bạn nghĩ rằng họ sử dụng chứng chỉ khác cho mỗi trang web thay vì chỉ là một chứng chỉ ký tự đại diện? –
Cảm ơn bạn đã trả lời nhanh chóng @SteffenUllrich. Bạn có thể mở rộng ý tưởng của bạn được không? Tôi không hiểu. HTTPS cần phải được giải quyết trước khi ứng dụng truy cập, vì vậy điều bạn có ý nghĩa là: "Bạn có thể tạo cấu hình khớp với ký tự đại diện và sau đó sử dụng HTTP_HOST ví dụ trong ứng dụng của bạn"? Ngoài ra, tôi có thể thực hiện: site111.mysite.com không có vấn đề gì, nhưng tôi cố gắng làm site111.com, site222.com hoạt động. Có lẽ chúng ta nói chuyện với nhau :) –
Nó chỉ hoạt động khi bạn có thể sử dụng chứng chỉ ký tự đại diện, tức là \ *. Mysite.com có thể nhưng \ *. Com thì không. Nhưng đó cũng không phải là những gì các trang web khác cung cấp, phải không? –