【问题标题】:Django AWS S3 Invalid certificate when using bucket name "."使用存储桶名称“。”时,Django AWS S3 证书无效
【发布时间】:2014-05-20 17:14:33
【问题描述】:

我遇到了这个ticket 中描述的问题。

我不能在本地使用 django 将 collectstatic 上传到我们的 static.somesite.com,因为 S3 将 s3.amazon.com 添加到 url,然后使他们自己的 *.s3.amazon.com 证书无效。 我为 static.somesite.com 设置了一个指向 s3 服务 ip 的 dns 指针。

我设置了AWS_S3_SECURE_URLS = False

还不知道怎么解决。这是完整的错误消息。我完全理解为什么会这样,必须有解决方法吗?在我们的生产服务器上,这工作得很好。就是找不到设置。

boto.https_connection.InvalidCertificateException: 
Host static.somesite.com.s3.amazonaws.com returned an invalid certificate 

(remote hostname "static.somesite.com.s3.amazonaws.com" does not match certificate)     

{
 'notAfter': 'Apr  9 23:59:59 2015 GMT', 
 'subjectAltName': (
                    ('DNS', '*.s3.amazonaws.com'),
                    ('DNS', 's3.amazonaws.com')), 
 'subject': (
             (('countryName', u'US'),), 
             (('stateOrProvinceName', u'Washington'),), 
             (('localityName', u'Seattle'),), 
             (('organizationName', u'Amazon.com Inc.'),), 
             (('commonName', u'*.s3.amazonaws.com'),)
            )
 }

【问题讨论】:

  • 终于知道是什么了。在下面发布答案。

标签: django amazon-web-services amazon-s3 boto


【解决方案1】:

一直在挖掘我一直在使用的交通应用程序的代码。似乎它正在从我的 django 项目设置之外的某个地方获取配置设置并覆盖它们。

几年前,我正在为一个谷歌应用引擎测试项目测试谷歌云存储,这意味着我在全球范围内安装了“Gsutils”包。你猜怎么着? Gsutils 也使用 Boto!所以一旦我发现我可以设置一个 boto 配置文件,我就开始寻找它。坐在 OSX 上,在 Finder 中或使用 ls -al 列出我的主目录中的文件时,看不到文件 ~/.boto。唉,当我尝试使用 nano ~/.boto 来创建它时,瞧!从我使用 Gsutils 开始,就已经有很多设置了。

在那里我禁用了 #https_validate_certificates = True 设置,现在一切都像魅力一样。

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 2020-07-16
    • 1970-01-01
    相关资源
    最近更新 更多