AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 393368
Accepted
mgriffin
mgriffin
Asked: 2012-05-29 10:28:01 +0800 CST2012-05-29 10:28:01 +0800 CST 2012-05-29 10:28:01 +0800 CST

通过 SSL 使用 Apache NameBased VirtualHosts 的 NTLM 授权

  • 772

我有一个通过 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 指令,基于名称的虚拟主机将按我预期的方式工作。我试过在每个虚拟主机中放置目录标签,我也试过使用位置标签,但我没有取得任何进展。

apache-2.2 ssl ntlm namevirtualhost
  • 2 2 个回答
  • 1260 Views

2 个回答

  • Voted
  1. Best Answer
    Tom
    2012-05-29T15:08:59+08:002012-05-29T15:08:59+08:00

    我将从制作 2 个按预期工作的牢固独立的 VirtualHosts 开始,然后逐步更改为混合版本。

    我怀疑您的 2 个 VirtualHosts 解决了这样的问题;

    <VirtualHost ipaddress:443>
        Servername "hostname.fqdn"
        DocumentRoot "/var/www/"
    
        SSLEngine on
        SSLCertificateFile  /path/to/cert.crt
        SSLCertificateKeyFile   /path/to/cert.key
    
    <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>
    
    
    </VirtualHost>
    
    <VirtualHost ipaddress:443>
        ServerName "project1.domain"
        DocumentRoot "/var/www/project1"
    
        SSLEngine on
        SSLCertificateFile  /path/to/cert.crt
        SSLCertificateKeyFile   /path/to/cert.key
    
    
    
    <Directory "/var/www/project1">
        AuthType CENTRIFYDC
    
        EnableBasicAuth     false
        EnableKerberosAuth  false
        EnableNtlmAuth      true
    
        Require group       required_ad_group
    </Directory>
    
    </VirtualHost>
    

    所以我会测试类似的东西,然后将它们从彼此的子目录中移出,看看哪些指令有冲突

    • 0
  2. mgriffin
    2012-05-31T06:47:08+08:002012-05-31T06:47:08+08:00

    经过更多调查,这不是 Apache 配置的问题。似乎浏览器正在传递 NTLM 而 Apache 正在接收它,但 Centrify 没有正确验证它。现在我需要弄清楚故障在哪里,但那是另一个话题。

    • 0

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve