我将heroku postgres db从业余爱好(免费)升级到standard-0(收费),因为我接近业余爱好计划的行数限制,并且无法获得SSL签发或“粘贴”给我应用程序,使其可以正常工作。
我成功地遵循了Heroku文档中的pg:copy说明,但是这样做之后,该应用程序无法访问新数据库。我可以通过POSTICO访问它。
研究表明这是一个SSL问题,因此我升级到了爱好动态器(heroku ps:resize web = hobby),它应根据Heroku文档自动生成SSL证书并将其分配给我的应用域。
但是,当我这样做时,然后运行:
heroku certs
我得到:my-app-name没有SSL证书。 使用heroku证书:添加CRT密钥以添加一个
我跑步时:
heroku certs:auto
我得到:
启用自动证书管理...开始。使用heroku certs:auto查看状态,或者等待直到通过heroku certs:auto:wait激活 ===您的证书现在将由Heroku管理。通过运行
检查状态heroku certs:auto
但是跑步
heroku certs
仍然给出:my-app-name没有SSL证书
运行
heroku certs:auto:wait
我得到了:什么都没有...只是在命令行上换了一行
运行
heroku certs:generate my-app-name.herokuapp.com
我得到:
您的密钥和证书签名请求已生成。 在“ my-app-name.herokuapp.com.csr”中将CSR提交给您首选的证书颁发机构。
我不知道这意味着什么,除了Heroku文档外,这还应该为我完成。
还:我确实将ssl:true键值对添加到了knexfile.js中的生产对象中
production: {
client: 'pg',
connection: process.env.DATABASE_URL,
ssl: true
},
答案 0 :(得分:0)
我最终与Heroku开了一张帮助票。在确保正确执行了pg:copy的过程之后,由一位知识渊博的Heroku工程师Taylor Jones为我提供了解决该问题的建议。
尽管您的Knex实例似乎仍然没有强制SSL 指定这样做。尝试添加以下配置 您应用的变量:
heroku config:set PGSSLMODE=require
这应该为您的SSL添加更多的实施层 与您的Postgres实例的连接。让我知道这是否无效 要么。