我有一个通过 Apache 服务器前置的开发环境。此 apache 服务器需要使用 AD 后端的 SSL 和启用 Centrify 的 NTLM 身份验证/授权,使用组访问权限来查看网页。会有多个项目使用这个环境,所以我想设置虚拟主机,这将允许每个项目使用任何特定的 apache 模块修改自己的虚拟主机。Web 文件将位于 /var/www/project1 中;/var/www/project2 ; ETC..
我已经将 DNS 正确配置为将 *.domain 指向 apache 服务器,以及将 altDNSName 字段设置为 *.domain 的通配符 SSL 证书。
问题是 NTLM 身份验证部分:
如果我将浏览器指向https://hostname.fqdn/project1/index.html,NTLM 授权过程将完全按照我的意愿进行。我相信这会耗尽我的默认虚拟主机。
如果我改为将浏览器指向https://project1.domain/index.html,Apache 错误日志会抱怨“用户对 /index.html 的 NTLM 身份验证失败。错误:登录失败。
<VirtualHost ipaddress:443>
Servername "hostname.fqdn"
DocumentRoot "/var/www/"
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/cert.key
</VirtualHost>
<VirtualHost ipaddress:443>
ServerName "project1.domain"
DocumentRoot "/var/www/project1"
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/cert.key
</VirtualHost>
<Directory "/var/www">
Options Indexes FollowSymLinks
SSLRequireSSL
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/project1">
AuthType CENTRIFYDC
EnableBasicAuth false
EnableKerberosAuth false
EnableNtlmAuth true
Require group required_ad_group
</Directory>
我在 IE 和 Firefox 上都尝试过,确保 *.domain 在我的 IE 本地 Intranet 区域中,并且network.automatic-ntlm-auth.trusted-uris和network.negotiate-auth.trusted-uris设置正确在 Firefox 中设置。
我已将其缩小到 NTLM 问题,因为如果我删除 Centrify 指令,基于名称的虚拟主机将按我预期的方式工作。我试过在每个虚拟主机中放置目录标签,我也试过使用位置标签,但我没有取得任何进展。