【发布时间】: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 添加到配置中。