我把头发拉到这里.像wix.com,squarespace.com等网站; 可以动态生成网站,并且仍然在数百万个自定义域中的每一个上使用SSL.
我尝试做同样的事情,但我无法弄清楚他们是如何做到的!
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>
Run Code Online (Sandbox Code Playgroud)
但是当我重新启动apache时出现错误:SSLCertificateFile:文件'/etc/apache2/ssl/%0/server.crt'不存在或为空
即使我创建一个虚拟文件夹/ ssl /%0 /带有一些虚拟证书......它仍然使用(错误的)虚拟证书.
我知道有些人会在他们的高马上大喊大叫,你不能在TLS握手之前解析服务器名称.但根据这篇文章和其他文章:%0可以用mod_vhost_alias解决,因为服务器名称是用SNI发送的...
我知道这很有效:第二种方法是为每个自定义域创建一个虚拟主机:
<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"
Run Code Online (Sandbox Code Playgroud)
我可以创建一个脏系统,每个新域添加一个虚拟主机,每天重新加载apache Eeewwww ......再次:Apache将虚拟主机的数量限制为256:/
他们是如何做到的呢!?还有其他技术可以帮助我吗?Nginx,Nodejs?感谢您的时间.