【发布时间】:2014-06-16 12:19:26
【问题描述】:
我有一个运行 Apache HTTPD 的 Debian 服务器。
我已将其配置为使用位于 /etc/ssl/private/ 中的某些 SSL 证书。只有 root 用户对该目录具有读写权限。 HTTPD 进程以 www-data 用户身份运行,但它由 root 用户使用 init.d 脚本(HTTP 安装附带)启动。
当 apache2 进程作为 www-data 运行并且 SSL 证书只能由 root 用户读取时,Apache 如何能够毫无问题地读取证书和运行?
我为使用 Python 编写的自定义服务器编写的 init.d 脚本遇到了类似的问题。只要我不使用 SSL 证书,这个 init.d 脚本就可以正常工作。一旦我添加了这些证书,该过程就不会开始,因为它无法读取证书,因为 www-data 用户无法读取证书。
我也在类似的情况下使用过 nginx,结果与使用 Apache 的结果相似。那么这两个项目是如何解决这个问题的呢?
【问题讨论】:
-
“我面临着类似的问题” > 你的第一个问题是什么——我没看到?另外,为什么您的“自定义”“服务器”初始化脚本是用 python 编写的?使用为您的操作系统提供的系统服务器初始化脚本启动 Apache;这就是它的用途,并且经过了彻底的测试。然后,您可以使用 python 与以 root 身份运行的服务器进行交互。不要以任何其他方式启动服务器!使用 python 脚本启动 Apache 或任何其他系统/根服务的原因是什么?
标签: linux apache nginx apache2 sysadmin