【问题标题】:Two sites using SSL running on one IP两个使用 SSL 的站点在一个 IP 上运行
【发布时间】:2023-04-10 09:21:01
【问题描述】:

当用户浏览到我的配置中的第二个域时,我无法让我的 apache 服务器提供正确的 IP 地址。这是我的配置当前的示例。此配置将向客户端提供以下错误“服务器证书与 URL 不匹配。”。在此先感谢您的帮助。

<VirtualHost *:80>
    ServerName www.domain1.com
    Redirect / https://www.domain1.com/
</VirtualHost>


<VirtualHost *:443>
            ServerAdmin webmaster@localhost
            ServerName www.domain1.com
            SSLEngine on
            SSLCertificateFile /location/ofcerts/www_domain1_com.crt
            SSLCertificateKeyFile /domain1/www_domain1_com.key
            SSLCertificateChainFile /location/ofcerts/COMODORSAAddTrustCA.crt
            SSLCertificateChainFIle /location/ofcerts/domain1.ca-bundle
            SSLProtocol all -SSLv2 -SSLv3
            SSLHonorCipherOrder on
            SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
        <Location />
            SetEnv no-gzip
        </Location>

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        <Directory /var/www/sub>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName www.domain2.com
        SSLEngine on
        SSLCertificateFile /location/of/domain2certs/www_domain2_com.crt
        SSLCertificateKeyFile /domain2/www_domain2_com.key
        SSLCertificateChainFile /location/of/domain2certs/COMODORSAAddTrustCA.crt
        SSLCertificateChainFIle /location/of/domain2certs/domain2.ca-bundle
        SSLProtocol all -SSLv2 -SSLv3
        SSLHonorCipherOrder on


        DocumentRoot /var/www/domain2
        <Directory /var/www/domain2>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

【问题讨论】:

  • https 的限制之一是每个 IP 地址只允许一个 URL。
  • 当请求到达服务器时,主机头被加密,因此无法决定使用哪个证书,您可以查看使用 SNI 或在不同端口上运行 dom2。
  • 我会研究 SNI,希望我可以让它以这种方式工作。
  • 听起来并不是所有的客户都支持 SNI。您在哪些平台上使用哪些典型浏览器?
  • 我其实已经回答了我自己的问题。这不是客户端问题,我将 NameVirtualHost *:443 SSLStrictSNIVHostCheck off 添加到配置中。

标签: ssl apache2


【解决方案1】:

我认为不可能在同一 IP 地址和端口上托管 2 个基于命名的 SSL 虚拟主机。 Apache 将始终使用列出的第一个解释错误的主机。

链接:https://wiki.apache.org/httpd/NameBasedSSLVHosts

【讨论】:

  • 废话...它有多个 NIC,但我认为添加第二个内部 IP 不会有什么好处,因为我只能将 443 转发给其中一个。
  • 实际上,可以使用 SNI,如您提到的该页面上的第一个链接中所述。
【解决方案2】:

在配置顶部添加了以下内容。

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

# Go ahead and accept connections for these vhosts
# from non-SNI clients
SSLStrictSNIVHostCheck off

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 2023-03-23
    • 2015-01-17
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2013-10-16
    • 2017-04-14
    • 1970-01-01
    相关资源
    最近更新 更多