【问题标题】:Where to securely store certs/keys when using PHP/MySQLI/Apache?使用 PHP/MySQLI/Apache 时在哪里安全地存储证书/密钥?
【发布时间】:2012-07-31 16:38:24
【问题描述】:

我有单独的 Web (Apache/PHP) 和数据库 (MySQL) 服务器,通过 SSL 连接使用 mysqli 运行良好。在框架内数据库连接库的 ssl_set() 函数中,我可以指定密钥/pem 文件的路径,只要它在 docroot 中即可。如果文件在docroot之外,我显然无法访问它们,并且连接失败。

在 apache docroot 之外存储和访问 mysql 客户端 ssl 密钥最安全的方法是什么?

是否可以安全地使用“ini_set”,从而我可以“即时”允许该访问,然后删除该参数?还是应该使用符号链接?

我正在这里寻找最佳做法。我想这个问题不限于证书密钥,但我想确保你知道我的具体用例。

谢谢!

【问题讨论】:

    标签: php security ssl mysqli certificate


    【解决方案1】:

    我正在这里寻找最佳做法。我想这个问题不限于证书密钥,但我想确保你知道我的具体用例。

    这个问题涉及到安全专家会在针对不同威胁模型的权衡中分心的领域,因此安全凭证管理没有“一个正确的答案”。但是,有很多明显错误的答案。

    Chris Cornutt 发表了一篇关于 securing PHP credentials with Docker 的文章,我强烈建议您阅读这篇文章,了解有关解决凭证管理所涉及的威胁和策略的背景信息。

    一般来说,psecio/secure_dotenv 可以为大多数用户解决这个问题。这是一个用于管理凭据的开源库,以静态加密方式存储凭据。

    如果您需要更高级的东西(或与产品集成,例如 Vault),您可能需要请安全专家审查您的设计和实施。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2020-09-24
      • 2011-11-09
      • 2020-12-21
      • 2015-11-24
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多