Rails 5、Heroku 与 Let's Encrypt SSL - 配置设置时遇到问题

2023-12-06

我正在尝试弄清楚如何使用 heroku 上的 Rails 应用程序进行加密。

我已经尝试了几个 gem,它们似乎是为帮助完成此过程而设计的(letsencrypt-plugin),但删除了这些 gem 推荐的所有安装步骤,因为我无法正常工作。

现在,我再次尝试理解此处列出的教程:

http://collectiveidea.com/blog/archives/2016/01/12/lets-encrypt-with-a-rails-app-on-heroku/

https://medium.com/should-designers-code/how-to-set-up-ssl-with-lets-encrypt-on-heroku-for-free-266c185630db#.h9vjoxboq

我还没有走远。

我再次尝试这个:https://medium.com/should-designers-code/how-to-set-up-ssl-with-lets-encrypt-on-heroku-for-free-266c185630db#.h9vjoxboq

目前,错误消息显示:

Type:   unauthorized
   Detail: The key authorization file from the server did not match
   this challenge
   [first random string.second random string]
   != [#{params[:id]}.ENV["LETS_ENCRYPT_SECOND"]]

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address.

我已将 LETS_ENCRYPT_SECOND 与“第二个随机字符串”保存在我的 application.yml 中。

我的 DNS 中没有任何 A 记录。我在 Heroku 上托管 - 它不提供任何 A 记录或 IP 地址。我的域名已在 123-reg 上注册。

我不明白这部分说明:

mkdir -p /tmp/certbot/public_html/.well-known/acme-challenge

cd /tmp/certbot/public_html

printf "%s" 第一个随机字符串.第二个随机字符串 > .well-known/acme-challenge/第一个随机字符串

每个服务器仅运行一次:

$(命令-v python2 || 命令-v python2.7 || 命令-v python2.6) -c \ “导入BaseHTTPServer,SimpleHTTPServer;\ s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \ s.serve_forever()"

我认为它们意味着我需要将上述 4 个命令中的每一个命令放入终端中,然后就完成了。我已经这样做过好几次了,但我没有取得任何进展。

任何人都可以帮忙提供如何设置的建议。我被困住了。

UPDATE

我已经删除了尝试遵循上述指南创建的所有设置,并使用 LetsEncrypt_Plugin gem 再次尝试

目前,这些设置均已配置,但是当我尝试运行 rake Letsencrypt_plugin 时,我收到一条错误消息:

挑战验证失败!错误:urn:acme:error:unknownHost: 找不到 www.example.com 的有效 IP 地址

我现在不确定是否应该将自定义域名放入letsencrypt_plugin.yml 文件中,或者是否应该在那里为自定义域名写入heroku 应用别名。

此外,由于该应用程序托管在 heroku 上,因此没有 IP 地址。我的 DNS 配置根本没有任何 A 记录(没有 IP 地址)。

进一步更新

我制作了一个全新的 Rails 5 应用程序。我把它放在heroku上。我再次尝试了let encrypt_plugin。这次,我收到一条错误消息:

heroku run rake letsencrypt_plugin
Running rake letsencrypt_plugin on ⬢ ancient-octopus-78709... up, run.6780 (Hobby)
I, [2016-10-17T07:59:13.985385 #3] INFO -- : Trying to register at Let's Encrypt service...
I, [2016-10-17T07:59:13.985480 #3] INFO -- : Loading private key...
I, [2016-10-17T07:59:14.255357 #3] INFO -- : Acme::Client::Error::Malformed - Registration key is already in use
I, [2016-10-17T07:59:14.256579 #3] INFO -- : Already registered.
I, [2016-10-17T07:59:14.256646 #3] INFO -- : Sending authorization request for: www..com...
I, [2016-10-17T07:59:14.504527 #3] INFO -- : Storing challenge information...
I, [2016-10-17T07:59:16.688404 #3] INFO -- : Waiting for challenge status...
E, [2016-10-17T07:59:18.456415 #3] ERROR -- : Challenge verification failed! Error: urn:acme:error:unauthorized: Invalid response from http://www..com/.well-known/acme-challenge/eAniFLfG_3t5HrD6zbtppzWWYz1Ay76r0GaFHQ62GLI: "<!DOCTYPE html>


We're sorry, but something went wrong (500)

我最近实施了 sslheroku (python)使用其中之一links您发布的内容。让我来理解一下这个过程。

Firstly

  • 您的网站有自己的域名还是使用 heroku 生成的域名?以上所有链接均适用于具有自定义域名的网站,not为heroku默认域名[name-of-app].herokuapp.com
  • 要拥有自己的域名,请按照所述步骤操作here
  • 您有自定义域名设置,请点击上面的链接example.com替换为--your-domain--name.com

一旦您完成上述过程,我将很乐意为您解释更多

现在您已经有了一个可以访问的网站myexample.com其托管于heroku

  • 你必须打开一个带有路线的网址.well-known/acme-challenge在你的 Rails 应用程序上。打开它并重新部署 Rails 应用程序后,您应该能够访问该 URLhttp://myexample.com/.well-known/acme-challenge目前,这将显示一个没有内容的空白页面。
  • 接下来,使用您输入的域名手动生成上述链接中指定的 ssl 证书。您应该到达获得一个长随机令牌的步骤ya6k1edW38z.ebThgg67ggbb...

现在是关键部分。这就是让我们加密验证您是否是为其生成 ssl 证书的域的实际所有者的方式。它为您提供真正随机且复杂的文本,并要求您在特定路线上显示.well-known/acme-challenge在域上your-domain.com

为了实现这一点

  • 渲染此令牌text格式作为输出.well-known/acme-challenge路线。示例代码请参考上面的链接
  • 通过这些更改重新部署您的应用程序
  • 现在手动检查路线http://myexample.com/.well-known/acme-challenge。这应该显示您在上述步骤中手动创建期间获得的文本。

现在继续创建过程certbot。这应该为您的域创建证书。获得证书后,将它们添加到 heroku ssl 设置中按照此链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 5、Heroku 与 Let's Encrypt SSL - 配置设置时遇到问题 的相关文章

  • 使用 Minitest 测试自定义验证器

    我有多个带有电子邮件验证的模型 因此 我将验证提取到自定义验证器中 我按照以下教程做到了这一点导轨指南 http guides rubyonrails org active record validations html custom va
  • 使用端口 80 的 AWS Elastic Beanstalk 上的 WebSocket 问题

    我正在将一个 node js 应用程序从 Heroku 迁移到在端口 80 上使用 WebSocket 的 AWS Elastic Beanstalk WebSocket 在 AWS Elastic Beanstalk 上返回 301 错误
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • Android 2.3.4 SSL问题

    升级到 Android 2 3 4 后 出现以下异常 javax net ssl SSLException Read error ssl 0x I O error during system call Connection timed ou
  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • Heroku 和 sails 应用程序 |崩溃和超时

    我有一个非常基本的帆应用程序在本地启动并运行 当我部署到 Heroku 时 我无法从应用程序获得响应 最终得到 应用程序错误 我有时会收到 未收到数据 赫罗库日志 2015 08 30T22 06 50 949475 00 00 herok
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • Rails 从 OrdersController 更新用户模型的属性

    这是我的代码 订单控制器类 def create order Order new params order if order purchase work GATEWAY store credit card options result wo
  • 没有名为 crypto.cipher 的模块

    我现在正在尝试加密一段时间 我最近得到了这个基于 python 的密码器 名为PythonCrypter https github com jbertman PythonCrypter 我对 Python 相当陌生 当我尝试通过终端打开 C
  • 多次部署后 Heroku Slug 大小

    我有一个红宝石 on Rails非常接近 slug 大小限制 300mb 的应用程序 我已经尽可能地减小了尺寸 slugignore但还没有得到我想要的结果 一时兴起 我尝试创建一个新的Heroku应用程序并向其部署相同的 git 存储库
  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • Delphi AES 库 (Rijndael) 使用 KAT Vectors 进行测试

    对于这两个库 Delphi 加密概要 v 5 2 http code google com p delphidec TurboPower 密码箱 v 2 07 http lockbox seanbdurkin id au tiki list
  • Capybara with Rails:如何仅查找不可见元素

    我正在 Rails 项目 Rails 5 2 0 中使用 Capybara capybara 3 1 0 进行系统测试 确保元素不可见的方法是什么 我当时用的是visible false选项 直到我发现它也匹配可见元素 例如我使用 find
  • 使用redirect_to :create 动作

    我正在尝试重定向到另一个控制器的创建方法 但是 我找不到将方法设置为 POST 的方法 这将导致调用索引方法 使用 method gt post只是创建一个新参数 但不会更改 http 方法 有什么想法如何重定向到创建方法吗 您无法在重定向
  • 在 iOS 上使用 RNCryptor 异步解密大文件

    我需要在 iOS 上使用 RNCryptor 异步解密一个大文件 以便显示进度条 我在任何地方都找不到示例 因此尝试了我猜对的方法 但是 我想出的方法不起作用 解密器的处理程序从未被调用 并且线程在发送所有数据后因 EXC BAD ADDR
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • 使用 Passenger + Apache 相对于 Webrick 的优势

    我想说服我的管理层 使用 Apache 乘客设置是继续生产的方法 而不是使用 webrick 或 mongrel 我从网上找到了一些观点 如果您能添加您的想法 那将非常有帮助 因为这将有力地帮助我表达我的观点 欢迎提供技术细节 如果您有任何
  • 如何以 Rails 形式将图像从 上传到具有 Rails Active Storage 的 S3?

    正如标题中所述 我正在尝试使用 Rails 的 Active Storage 从嵌套在 Rails 表单中的元素将图像上传到我的 S3 存储桶 到目前为止我已经能够使用使用 Active Storage 上传图像 这User class h
  • 将 Rack::Deflater 插入机架中的哪个位置?

    我目前有以下内容 use Rack Rewrite use Rack Cache verbose gt true metastore gt memcached localhost 11211 rack cache meta entityst
  • 升级到 Rails 6 时是否有一种编程方法可以检测 Zeitwerk::NameError?

    我目前正在将旧的 Rails 应用程序迁移到 Rails 6 好像项目中有些文件和里面定义的类不一致 运行应用程序测试时我没有看到此错误 但部署后我收到如下错误 Zeitwerk NameError expected file app my

随机推荐

  • shouldAutorotate To InterfaceOrientation:从未调用过

    我在 部署信息 下将支持的界面方向设置为除纵向倒置之外的所有方向 我想重写 shouldAutorotateToInterfaceOrientation 以实现自定义行为 即根据条件支持景观 由于限制 自定义视图转换 我只有一个视图控制器
  • 如何使用 AVAudioPlayer 在 iPhone sdk 中暂停和恢复同一首歌曲

    我想暂停这首歌 然后在 iPhone 中使用编程方式从该持续时间点继续播放 当我尝试暂停歌曲并再次开始播放我暂停的歌曲时 如何对其进行编码 是否有任何直接属性或建议任何代码可以解决我的问题 void playMusic path NSBun
  • 如何使用 Nuxt 2 转译 node_modules 中的依赖项?

    我读过有关转译的问题node modulesNuxt 但据说新的 Nuxt 2 已经解决了这个问题transpile选项中的nuxt config js file https nuxtjs org api configuration bui
  • 从 Beam 管道连接 google cloud sql postgres 实例

    我想从在谷歌数据流上运行的 apache beam 管道连接谷歌云 sql postgres 实例 我想使用 Python SDK 来完成此操作 我无法为此找到适当的文档 在云SQL如何指导我没有看到任何数据流文档 https cloud
  • Xcode 4.5 中的当前位置错误

    在 Xcode 4 5 中 苹果引入了苹果新地图 我的应用程序大量需要地图服务 我注意到在我的应用程序中它显示了错误的当前位置 直到您删除应用程序并重新打开它才显示正确的当前位置 有时不会 顺便提一下 当我连接到 4G 时 它显示的当前位置
  • javax.el.PropertyNotWritableException:value =“”:设置操作的非法语法[重复]

    这个问题在这里已经有答案了 我有这个表格
  • Javascript:检查两个div之间的碰撞

    有什么方法可以检查名称为 character 的 DIV 是否与名称为 ground 的 DIV 重叠 我想用干净的 Javascript 来做到这一点 我知道 jQuery 更好 但这就是我不想要的 我看到了这个帖子 检查某些div之间的
  • Solr:在数据导入期间转换逗号分隔字段

    我正在使用 Solr 3 5 0 我正在从 JDBC 数据源导入 并且有一个分隔字段 我希望将其拆分为各个值 我正在使用RegexTransformer但我的领域没有被分割 样本值 Bob Carol Ted Alice 数据配置 xml
  • 编译并运行动态代码,而不生成EXE?

    我想知道是否可以编译并运行存储的代码 而不生成 exe 或任何类型的其他文件 基本上从内存中运行该文件 基本上 主应用程序将具有一些存储的代码 可能会更改的代码 并且需要编译代码并执行它 无需创建任何文件 创建文件 运行程序 然后删除文件不
  • 实体框架DbContext无需查询并通过外键更新值

    我有一个更新一些表的方法 对于更新我需要首先获得TestProcess 但我不喜欢这样 我怎样才能更新TestProcess没有select firstOrDefault 操作 仅用于更新操作 方法示例 public void Update
  • 如何动态地分块重塑矩阵? [复制]

    这个问题在这里已经有答案了 假设我有A 1 8 11 18 21 28 31 38 41 48 现在我想将所有内容从第 4 列向前移动到行位置 我该如何实现这一目标 A 1 2 3 4 5 6 7 8 11 12 13 14 15 16 1
  • 如何处理“变量时间”(DATE、双精度、8 字节)?

    我似乎找不到任何有关 变体时间 的信息 DATE 双精度 8 字节变量 被处理 我有一个不同的时间 A 哪个值是 41716 892329 如果我转换 A 使用 变体时间到系统时间 or COle日期时间 我明白 2014 03 18 21
  • 移动向量会使迭代器失效吗?

    如果我有一个向量迭代器a 然后我移动构造或移动分配向量b from a 该迭代器是否仍然指向同一个元素 现在在向量中 b 这就是我在代码中的意思 include
  • 如何使用存储过程在sql server 2008中拆分字符串并将数据插入表

    我想以这种格式分割一个字符串 引用 date 10 10 2000 age 13 date 01 01 2001 age 12 date 02 02 2005 age 8 实际上这个字符串只是一个示例 我的原始字符串非常大 我不明白的是 如
  • 在 ASP.NET MVC 2 中 - 如何将路由值获取到导航控制器中,以便突出显示当前链接?

    我正在尝试将当前路线放入导航控制器中 以便在填充导航菜单数据时可以运行比较 我的链接对象是这样的 public class StreamNavLinks public string Text get set public RouteValu
  • Struts2;为 StrutsSpringTestCase JUnit 测试保持会话打开

    我的项目架构是带有 Spring 集成和 JPA Hibernate 的 Struts2 StrutsSpringTestCase 基类用于 JUnit 集成测试 正常情况下 web xml 中的以下配置使单个会话从每个请求的开始到结束保持
  • 退出应用程序会让人不悦吗?

    继续尝试学习 Android 我只是阅读以下 问题 用户是否可以选择终止应用程序 除非我们添加一个菜单选项来杀死它 如果不存在这样的选项 用户如何终止应用程序 答案 Romain Guy 用户不这样做 系统会自动处理此问题 这就是 Acti
  • OpenCV 中的人脸识别

    我试图使用 OpenCV 2 2 来自 Willow Garage 构建一个基本的人脸识别系统 PCA Eigenfaces 我从之前关于人脸识别的许多帖子中了解到 没有标准的开源库可以为您提供所有人脸识别功能 相反 我想知道是否有人使用过
  • 如何在heroku中设置超过30秒的响应超时

    伙计们 如果响应返回时间超过 30 秒 Heroku 将终止请求 那么有什么方法可以让我等待响应返回呢 好吧 用户正在上传他的文件 我需要对服务器中的文件执行一些操作 更新完成后 我将向用户提供下载链接 但服务器处理文件的时间大多超过30秒
  • Rails 5、Heroku 与 Let's Encrypt SSL - 配置设置时遇到问题

    我正在尝试弄清楚如何使用 heroku 上的 Rails 应用程序进行加密 我已经尝试了几个 gem 它们似乎是为帮助完成此过程而设计的 letsencrypt plugin 但删除了这些 gem 推荐的所有安装步骤 因为我无法正常工作 现