小编Fry*_*wow的帖子

SNI动态证书

我把头发拉到这里.像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?感谢您的时间.

apache ssl dynamic ssl-certificate sni

11
推荐指数
1
解决办法
563
查看次数

标签 统计

apache ×1

dynamic ×1

sni ×1

ssl ×1

ssl-certificate ×1