0

我想使用 SNI 在相同的 ip 和端口上配置 ssl,或者可以是不同的端口,但我无法指示 apache 提供所请求域的 ssl 证书。

它提供默认站点证书。我无法调试问题。

我访问日志它显示默认域名但是请求是其他域的..

例如,我询问 site1.com,然后 site1.com 打开并提供 site1.com,但是如果我询问 site2.con,它提供 site1.com 的 ssl,并且 site2.com 被重定向到 site1.com

如果我添加 domainname:443 而不是 *:443 那么浏览器会给出 241 重定向错误,如下所示

Misdirected Request 客户端需要为此请求建立新连接,因为请求的主机名与用于此连接的服务器名称指示 (SNI) 不匹配。

我正在 /etc/apache2/ports.conf 中的端口 80 和 443 上监听我已经使用 apt-get install libapache2-mod-ssl a2enmod ssl 安装了 ssl mod

我正在使用具有最新 apache2 版本和 openssl 的 ubuntu 服务器仿生(18)

我关注了多个来源,但是按照这些链接并没有解决我的问题

Digicert.com

memset.com

digitalocean.com

apache.org

技术共和国

技术资料网

SSLStrictSNIVHostCheck on

<IfModule mod_ssl.c>

    <VirtualHost *:443>

            ServerAdmin admin@site1.com
            ServerName site1.com/
            ServerAlias www.site1.com/

            SSLEngine on
            SSLCertificateFile /etc/apache2/ssl/site1.com/certificate.crt
            SSLCertificateKeyFile /etc/apache2/ssl/site1.com/private.key
            SSLCertificateChainFile /etc/apache2/ssl/site1.com/ca_bundle.crt



            DocumentRoot /var/www/site1.com/public_html

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
</IfModule>




<VirtualHost *:80>

    ServerName site1.com

    ServerAlias www.site1.com

    DocumentRoot /var/www/site1.com/public_html

    Redirect permanent / https://site1.com/

</VirtualHost>


<IfModule mod_ssl.c>

    <VirtualHost *:443>

            ServerAdmin admin@site2.com
            ServerName site2.com/

            ServerAlias www.site2.com/

            SSLEngine on
            SSLCertificateFile /etc/apache2/ssl/site2.com/certificate.crt
            SSLCertificateKeyFile /etc/apache2/ssl/site2.com/private.key
            SSLCertificateChainFile /etc/apache2/ssl/site2.com/ca_bundle.crt



            DocumentRoot /var/www/site2.com/public_html

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
</IfModule>


< VirtualHost *:80>

    ServerName site2.com

    ServerAlias www.site2.com

    DocumentRoot /var/www/site2.com/public_html

    Redirect permanent / https://site2.com/

</VirtualHost>
4

1 回答 1

1

为了正确配置您的 apache 服务器以使用相同的公共 IP 地址拥有多个 SSL 虚拟主机,您应该按照以下步骤操作:

编辑您的httpd.confapache2.conf文件并检查您是否有以下条目:

NameVirtualHost *:80
NameVirtualhost *:443

然后对于所有虚拟主机,替换

<VirtualHost *:80> with <VirtualHost YOUR_SERVER_PUBLIC_IP:80> 

<VirtualHost *:443> with <VirtualHost YOUR_SERVER_PUBLIC_IP:443>

重新启动 apache,您应该一切顺利!

确保没有其他条目或配置文件具有<VirtualHost *:443>定义。所有定义都应包含实际的服务器 IP 地址,否则您将遇到完全相同的问题。

于 2018-03-26T10:26:48.720 回答