Wyciągam tu moje włosy. Strony internetowe takie jak wix.com, squarespace.com ... itp .; potrafi generować strony internetowe w locie i nadal używać SSL w każdej z milionów niestandardowych domen.Certyfikat dynamiczny SNI
Próbuję zrobić to samo, , ale nie mogę wymyślić, jak to robią!?
Logicznym rozwiązaniem byłoby na 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>
Ale kiedy restart apache pojawia się błąd: SSLCertificateFile: file '/etc/apache2/ssl/%0/server.crt' nie istnieje lub jest pusty
Nawet gdy utworzę fikcyjny folder/ssl /% 0/z niektórymi fałszywymi certyfikatami ... nadal używałem (niewłaściwych) atrapowych certyfikatów.
Wiem, że niektórzy dostaną na swoich wysokich koniach i krzyczą, że nie można rozwiązać nazwy serwera PRZED uzgadnianiem TLS. Ale według tego post i innych z nich:% 0 można rozwiązać mod_vhost_alias ponieważ nazwa serwera jest wysyłany z SNI ...
wiem, że to działa: drugie podejście byłoby utworzyć VirtualHost dla każdej domeny niestandardowej :
<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"
mógłbym stworzyć brudną system, w którym mogę dodać jeden wirtualny gospodarza na nową domenę i przeładować apache codziennie Eeewwww ... i znowu: Apache cap liczbę wirtualnych hostów do 256:/
Jak oni to robią !? Czy istnieje inna technologia, która może mi pomóc? Nginx, Nodejs? Dziękuję za poświęcony czas.
Dlaczego uważasz, że to musi być częścią statycznej konfiguracji serwera? Możesz utworzyć konfigurację, która pasuje do symbolu wieloznacznego, a następnie użyć na przykład aplikacji HTTP_HOST w aplikacji, aby zdecydować, jakiego rodzaju zasoby mają być wyświetlane. Co sprawia, że myślisz, że używają innego certyfikatu dla każdej witryny zamiast tylko certyfikatu z symbolem wieloznacznym? –
Dziękujemy za szybką odpowiedź @SteffenUllrich. Czy możesz rozwinąć swój pomysł? Nie rozumiem. Protokół HTTPS musi zostać rozwiązany przed uzyskaniem do niego dostępu przez aplikację, więc co masz na myśli: "Możesz utworzyć konfigurację pasującą do symbolu wieloznacznego, a następnie użyć na przykład aplikacji HTTP_HOST w aplikacji"? Ponadto mogę zrobić: site111.mysite.com działa bez problemu, ale staram się, aby witryna site111.com, site222.com działała. Może rozmawiamy o sobie nawzajem :) –
Działa tylko wtedy, gdy można użyć certyfikatu wieloznacznego, tj. \ *. Mysite.com jest możliwy, ale \ *. Com nie. Ale to też nie jest to, co oferuje druga strona, prawda? –