apache SetHandler似乎被忽略

gz5pxeao  于 2023-08-07  发布在  Apache
关注(0)|答案(1)|浏览(108)

在Ubuntu 14.04LTS上安装apache 2上的shibboleth。实际的shib安装看起来很顺利,因此配置site .conf文件以使用shibboleth。
当我访问https://lib.msu.edu/secure时,它由shibboleth处理(在这个阶段有一个适当的配置异常),但是当我访问https://lib.msu.edu/Shibboleth.sso/Metadata(或Shibboleth.sso中的任何其他内容)时,它被重定向到php/drupal,并且从未被shibboleth系统看到,并得到一个404错误。
我最好的猜测是apache没有将请求传递给shibboleth,但我不知道为什么,也不知道如何调试这种情况。在我们的测试服务器上,这一切都运行得很好,我们找不到任何配置差异来解释原因。
apache .conf文件如下:

<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName lib.msu.edu
    ServerAlias library.msu.edu
    ServerAlias [...]
    DocumentRoot [MyValidRoot]

    <Directory [MyValidRoot]>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
    <Location /Shibboleth.sso>
            SetHandler shib
    </Location>
    <Location /secure>
            AuthType shibboleth
            ShibRequireSession On
            Require valid-user
    </Location>

    SSLEngine on
    SSLCertificateFile [validcertpath]
    SSLCertificateKeyFile [validkeypath]
    SSLCertificateChainFile [validIntermediateCertpath]

    SSLProtocol             all -SSLv2 -SSLv3 -TLSv1
    SSLCipherSuite          [cipherString]
    SSLHonorCipherOrder     on
    SSLCompression          off

    SSLUseStapling          on
    SSLStaplingResponderTimeout 5
    SSLStaplingReturnResponderErrors off

    Redirect /cgi-bin/ [CGIserver]/cgi-bin/

    # Redirect all requests to lib.msu.edu (except wwwm, for testing mirror)
    <If "! req('Host') in { 'lib.msu.edu', 'wwwm.lib.msu.edu' }">
            Redirect / https://lib.msu.edu/
    </If>

    RewriteEngine On

    # force trailing slash
    RewriteCond %{REQUEST_METHOD} !=post [NC]
    RewriteRule ^(.*(?:^|/)[^/\.]+)$ $1/ [L,R=301]

    # redirect .js and .css 404s to tomcat
    RewriteCond %{REQUEST_URI} \.(css|js)$
    RewriteCond /var/www/mainweb%{REQUEST_URI} !-f
    RewriteRule ^/(.*)$ https://tomcat.lib.msu.edu/$1 [L]
</VirtualHost>

字符串
谢谢你的任何帮助你可以给予!我们已经花了几个小时在这个陈旧的安装上敲我们的头。

j2cgzkjk

j2cgzkjk1#

在我的网站上,解决方案是将UseCanonicalName On添加到Apache虚拟主机配置中。
根据Apache手册,这将“SERVER_NAME”(CGI脚本通常使用的变量)设置为“ServerName”后面的字符串。特别是如果virtualhost使用“ServerAlias”,则可能会将“错误”的名称传递给shibboleth。
我假设Shibboleth模块使用“SERVER_NAME”变量来检查/选择证书。确保shibboleth证书使用Apache配置的“ServerName”作为“Issuer CN”。

相关问题