php - 使用 PHP/MySQLI/Apache 时在哪里安全地存储证书/ key ?

标签 php security ssl mysqli certificate

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

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

是否有“ini_set”的安全使用,我可以允许“即时”访问然后删除该参数?还是应该使用符号链接(symbolic link)?

我在这里寻找最佳实践。我想这个问题不仅限于证书 key ,但我想确保您了解我的具体用例。

谢谢!

最佳答案

I'm looking for best practices here. I suppose this question isn't limited to cert keys, but I wanted to make sure you knew my specific use case.

这个问题进入了一个领域,安全专家会针对不同的威胁模型进行权衡取舍,因此安全凭证管理没有“唯一正确答案”。然而,有大量明显错误的答案。

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

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

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

关于php - 使用 PHP/MySQLI/Apache 时在哪里安全地存储证书/ key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11744957/

相关文章:

php - 处理具有多个版本、适配器或工厂的类?

security - 如何可靠地检测用户是否使用新设备连接到站点?

IIS 8.0 和 SSL 和子域 Webapi/Angular

java - JBoss/Java 和 SSL

android - 在自定义 API 调用上验证签名证书指纹

javascript - FPDF:使用 AJAX 输出 PDF

php - 如何使用 PHP 上传脚本将电影从 .MOV 转换为 .MP4?

javascript计时器/持续时间在一段时间后给出错误的计算

http - 对于无效的主机/Referer 请求 header ,最合适的 HTTP 状态代码是什么?

security - 使用java使用SHA256加密解密