首页 > 解决方案 > Python / SSL - 该进程应该运行什么用户,就好像他们已经阅读了私钥一样?

问题描述

这里有一个很好的 Python 示例https://speakerdeck.com/markush/ssl-all-the-things-pycon-nz-2016?slide=18使用 SSL 的服务器。

在此刻 ...

在此处输入图像描述

...进程读取包含私钥的文件。

因此,无论进程运行的任何用户都需要对私钥的读取权限。

从安全的角度来看,最好的方法是什么?

将进程作为 'foo' 运行并授予 foo 对 PK 的读取权限会被认为是不好的做法吗?这对我来说听起来并不理想,但我只是看不出示例中的代码类型如何运行?

例如,我知道 Apache 以 root 身份启动,然后在具有较少权限的用户下生成一个进程。这是在这种情况下可以做的事情吗?有没有一个很好的例子来做这件事?


编辑:好吧,似乎这个https://docs.python.org/3.5/library/os.html#os.setuid将允许进程以 root 身份启动,然后在不同的所有者下运行(如果考虑过在需要像这里一样访问 PK 的地方是必要的)。会对在 Python 中完成的任何示例感兴趣......以及任何其他可能有效的方法。


编辑:只是为了添加关于使用os.setuid阅读此https://unix.stackexchange.com/questions/166817/using-the-setuid-bit-properly的评论,似乎确实存在一些困难的风险在我的情况下减轻。我会对其他人如何设法编写无需以 root 身份运行即可访问私钥的 Python 脚本的任何建议感兴趣。

标签: pythonpython-3.xsslpermissionsprivate-key

解决方案


推荐阅读