【问题标题】:S3 and apache mod_proxy with basic authentication具有基本身份验证的 S3 和 apache mod_proxy
【发布时间】:2015-08-03 05:30:35
【问题描述】:

我想通过 apache mod_proxy 对我的一些文件(apk 文件)进行基本身份验证,从而重定向到我的 SSL 中的 S3 存储桶。 SSL 和 mod_proxy 完美运行,但忽略了基本身份验证。

<VirtualHost *:443>
        ServerName resources.mydomain.jp

        <FilesMatch "\.apk$">
          Order deny,allow
          SetEnvIf User-Agent ".*Android.*" allow_ag
          Options FollowSymLinks
          Allow from env=allow_ag
          Deny from all
          AuthType Basic
          AuthName "Secret Zone"
          AuthUserFile /etc/httpd/.htpasswd
          Require user xxx_customer
        </FilesMatch>


        SSLEngine on
        SSLProxyEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
        SSLCertificateFile conf.d/xxx.cer
        SSLCertificateKeyFile conf.d/xxx.key
        SSLCACertificateFile conf.d/xxx.cer

        ProxyPass / http://resources.mydomain.jp.s3-website-ap-zone-1.amazonaws.com/
        ProxyPassReverse / http://resources.mydomain.jp.s3-website-ap-zone-1.amazonaws.com/

    </VirtualHost>

顺便说一句,同一个“FileMatch”用于另一个VirtualHost并且正常工作......

阿帕奇信息:

$ httpd -v
Server version: Apache/2.4.12 (Amazon)
Server built:   Mar 18 2015 20:24:15

谢谢

【问题讨论】:

    标签: apache amazon-web-services amazon-s3 basic-authentication mod-proxy


    【解决方案1】:

    仅匹配物理文件系统中的文件,而不是您可能认为是文件名的 URL 的最后一个组成部分。由于您是代理,因此没有 URL 映射到文件系统。

    试试

    需要更多的清理工作:

    • 明确设置“满足任何条件”
    • 将“命令拒绝,允许”更改为“命令允许,拒绝” (这意味着默认拒绝)
    • 删除“拒绝”(不再需要,使用 Allow from env=... 简化排序问题)

    【讨论】:

    • 谢谢。我已尝试使用“”(适用于所有 apk 文件),但错误仍然存​​在(文件是从 s3 下载而没有基本身份验证)。有什么想法吗?
    • 嗨 Johann - 请参阅编辑后的答案中的建议,我想我发现指令顺序的另一个微妙问题。
    • 谢谢。为什么“满足任何”而不是“满足所有”?
    • 在 2.2 中,这就是您所说的 Allow... 或 Require 就足够了。而不是需要通过两项检查
    猜你喜欢
    • 2012-02-04
    • 2011-06-28
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多