在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>
字符串
谢谢你的任何帮助你可以给予!我们已经花了几个小时在这个陈旧的安装上敲我们的头。
1条答案
按热度按时间j2cgzkjk1#
在我的网站上,解决方案是将
UseCanonicalName On
添加到Apache虚拟主机配置中。根据Apache手册,这将“SERVER_NAME”(CGI脚本通常使用的变量)设置为“ServerName”后面的字符串。特别是如果virtualhost使用“ServerAlias”,则可能会将“错误”的名称传递给shibboleth。
我假设Shibboleth模块使用“SERVER_NAME”变量来检查/选择证书。确保shibboleth证书使用Apache配置的“ServerName”作为“Issuer CN”。