我有以下
NameVirtualHost *:443
<VirtualHost 55.55.55.55:443>
#<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /path/to/cert/myCert.crt
SSLCertificateKeyFile /path/to/key/myKey.key
SSLCACertificateFile /path/to/bundle/bundle.crt
ServerAdmin info@myDomain.com
ServerName www.myDomain.com
DocumentRoot /var/www/html/
</VirtualHost>
我有一个Java程序,使用https访问上面的url。当我用ip地址注释掉VirtualHost行并取消注释通配符行时,Java程序给了我一个“peer not authenticated”异常。当我保持原样时,Java程序按预期工作。我想这样做的主要原因是我有其他子域我定义其他部分。
使用通配符VirtualHost线有什么问题?
答案 0 :(得分:0)
问题是通过定义IP地址正在使用该指令。但是,当我使用*:443指令时,我的服务器名称为www.myDomain.com,当我尝试访问该页面时,我没有访问www,因此未使用此虚拟主机块。但是在不同的配置文件中有一个_default:443
指令没有定义SSLCACertificateFile
指令,所以CA证书没有被发送,所以Java没有得到CA证书。
我的解决方案是:使用ServerName
创建一个*:443指令而不使用www
。