我想使用SNI在相同的IP和端口上配置ssl,或者可以是不同的端口,但我无法指示apache提供所请求域的ssl证书。
它提供默认站点证书。我无法调试此问题。
我访问日志时显示默认域名,但请求属于其他域名。
请问site1.com然后site1.com打开并发送site1.com,但是如果我问site2.con它会提供ssl of site1.com并且site2.com会重定向到site1.com
如果我添加 域名:443 代替 *:443 然后浏览器给出241重定向错误,如下所示
误导请求客户端需要为此请求建立新连接 因为请求的主机名与服务器名称指示不匹配 (SNI)用于此连接。
我正在/etc/apache2/ports.conf中侦听端口80和443 我已经安装了ssl mod apt-get install libapache2-mod-ssl a2enmod ssl
我正在使用ubuntu服务器bionic(18)与最新的apache2版本和openssl
我关注多个来源,但是这些链接没有解决我的问题
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>
答案 0 :(得分:1)
为了正确配置您的apache服务器以使用相同的公共IP地址拥有多个SSL虚拟主机,您应该按照以下步骤操作:
编辑您的 httpd.conf 或 apache2.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地址,否则你会遇到完全相同的问题。