【问题标题】:what's the best place to save encryption public and private keys in a laravel server在 laravel 服务器中保存加密公钥和私钥的最佳位置是什么
【发布时间】:2020-01-16 21:00:14
【问题描述】:

环境:我有一个在 Amazon EC2 上运行的 Laravel 6.x 应用程序,带有 Ubuntu 18.4 仿生和 Apache 服务器。我有多个预定的工匠命令。他们要么生成文件并将它们通过 FTP 传输到不同的服务器,要么从不同的服务器导入文件。这些文件在导出到客户端服务器之前必须使用 PHP GNUPG 加密,并且需要在从客户端服务器下载它们后进行解密以进行进一步处理,因此,必须将公钥和私钥存储在服务器上,并且以一种方式以“Ubuntu 用户”身份运行的计划进程可以访问和使用它们(我假设“Ubuntu 用户”只需要对密钥文件具有读取权限,并且不需要为其他用户授予任何权限,因为他们不应该也不应该获得任何权限)无法访问这些文件,如果我错了,请纠正我)。 我的问题:我想知道最佳实践,在我的服务器内的哪个文件夹中,以及我应该如何(使用什么权限)存储这些关键文件,以便我可以确保它们是安全的,以及确保所有自动化流程都能够根据需要访问和使用它们。

【问题讨论】:

  • 这里的答案取决于他们保护的数据的敏感性。如果您要存储医疗保健数据,您可能需要一个适当的保险库来存放 aws.amazon.com/cloudhsmvaultproject.io 等机密信息。

标签: php laravel encryption server gnupg


【解决方案1】:

Laravel oauth 包Passport 将它们保存在storage 文件夹中。这是 Laravel 开发人员期望它们在哪里的一个很好的指针,添加像 storage/keys 这样的子文件夹也可能是可行的。

权限方面,使用chmod 600 权限通常是标准。

或者Laravel env 可以保存这些密钥see

PASSPORT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
<private key here>
-----END RSA PRIVATE KEY-----"

【讨论】:

  • 感谢您的明确答复。您对将文件保存在 config 文件夹内的 keys 文件夹中,然后在 .env 文件中引用 keys 文件夹的地址有何看法?你认为这是一个好主意,或者这样做是否安全?并不是说我不喜欢您的方法,我知道由于您的方法是 Laravel 方法,那么它很可能遵循最佳实践,我只是想看看我尝试采用的方法有多好,谢谢很多!
  • 我不是粉丝,配置通常是版本系统中的跟踪文件夹。存储的好处是它不是,如果你把它放在那里并 gitignore 它,它不会伤害任何人。但是如果你想把它保存在 laravel 的文件夹结构中,我坚持这一点,去存储或 env :)
猜你喜欢
  • 2010-09-21
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2016-07-17
  • 2018-02-27
相关资源
最近更新 更多