【问题标题】:ERR_CERT_COMMON_NAME_INVALID when trying to get image from S3 with rails app on heroku尝试使用heroku上的rails应用程序从S3获取图像时出现ERR_CERT_COMMON_NAME_INVALID
【发布时间】:2019-06-27 15:37:02
【问题描述】:

当我尝试从亚马逊 S3 获取图像时,我在控制台中收到以下错误,我的 rails 5.2 应用程序(带有 ActiveStorage)部署在 heroku 上:

GET https://www.myapp-production.herokuapp.com/rails/active_storage/representations/eyJfcmFpbHMiOnsibW[...]/image.jpegnet::ERR_CERT_COMMON_NAME_INVALID

我正在使用带有 2 个应用程序的 heroku 管道:myapp-staging(免费 dyno,无 sll)和 myapp-production(专业 dyno + 自动 ssl)。 我有一个 ssl 指向生产应用程序的自定义域。

我可以在使用自定义域时获取图像。

仅当我同时使用 staging/production.herokuapp.com/ 域时才会出现此问题。

无法弄清楚问题出在哪里。

谢谢

【问题讨论】:

  • 嗨,欢迎来到 StackOverflow。请编辑您包含的代码,以便不需要水平滚动来阅读它。谢谢。

标签: ruby-on-rails google-chrome heroku amazon-s3 rails-activestorage


【解决方案1】:

如果你在页面上展开错误信息,你会得到更完整的解释:

This server couldn't prove that it's www.myapp-production.herokuapp.com; its security certificate is from *.herokuapp.com.

在证书中,* 仅匹配单个 DNS 标签(例如,不包含点)。因此,如果您使用 myapp-production.herokuapp.com 访问您的应用程序,它会起作用,但要支持导航到前面带有 www 的站点,您将需要获取包含 SubjectAltName *.myapp-production.herokuapp.com 的不同证书。

【讨论】:

    【解决方案2】:

    谢谢,那是问题。 我将所有请求从非 www 重定向到 www 子域,以避免在我的路由文件中出现重复的 SEO 内容。 我将其关闭以供审核和暂存应用程序,它现在可以正常工作了。

    我真的不明白为什么证书仅对图像无效...

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 2017-05-22
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多