为了在具有多个虚拟主机的服务器上为单个域启用 SSL,此配置可以工作吗?

为了在具有多个虚拟主机的服务器上为单个域启用 SSL,此配置可以工作吗?

我刚刚购买了 SSL 证书,用于在具有多个虚拟主机的服务器上保护/启用一个域。我计划按如下所示进行配置(非 SNI)。此外,我仍然希望通过我的服务器的 IP 地址安全地访问 phpMyAdmin。以下配置是否有效?我只有一次机会在生产中实现这一点。是否有任何冗余设置?

---apache ssl.conf file---

Listen 443 

SSLCertificateFile /home/web/certs/domain1.public.crt
SSLCertificateKeyFile /home/web/certs/domain1.private.key
SSLCertificateChainFile /home/web/certs/domain1.intermediate.crt

    ---apache httpd.conf file----
    ...
    DocumentRoot "/var/www/html" #currently exists
    ...
    NameVirtualHost *:443 #new - is this really needed if "Listen 443" is in ssl.conf???
    ...
    #below vhost currently exists, the domain I wish t enable SSL) 
    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName domain1.com
         ServerAlias 173.XXX.XXX.XXX
         DocumentRoot /home/web/public_html/domain1.com/public
    </VirtualHost>

    #below vhost currently exists.
    <VirtualHost *:80>
      ServerName  domain2.com
      ServerAlias www.domain2.com
      DocumentRoot /home/web/public_html/domain2.com/public
    </VirtualHost>

    #new -I plan on adding this vhost block to enable ssl for domain1.com!
    <VirtualHost *:443>
         ServerAdmin [email protected]
         ServerName www.domain1.com
         ServerAlias 173.XXX.XXX.20

         SSLEngine on
         SSLProtocol all
         SSLCertificateFile /home/web/certs/domain1.public.crt
         SSLCertificateKeyFile /home/web/certs/domain1.private.key
         SSLCACertificateFile /home/web/certs/domain1.intermediate.crt

         DocumentRoot /home/web/public_html/domain1.com/public
    </VirtualHost>

如前所述,我希望能够通过“https://173.XXX.XXX.XXX/hiddenfolder/phpmyadmin“存储在“var/www/html/hiddenfolder”下

答案1

你想做什么SNI. 在协商事宜中,IP 地址实际上是主机名。

您的配置将指向 domain1.com 和https://173.XXX.XXX.20进入同一目录。

您有 4 个选择:

  1. 信噪比

  2. 获取额外 IP

  3. 在您拥有的一个 SSL 证书下为 phpmyamin 创建一个别名

  4. 只需在另一个端口上监听 SSL,并让 IP 主机名使用该端口即可。例如https://173.XXX.XXX.20:444

您列出的配置很可能会给您带来麻烦。请编辑您的问题,说明您想要使用哪种解决方案运行。或者评论此回复

相关内容