我有一个运行 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 时类似。那么这两个项目是如何解决这个问题的呢?
最佳答案
当你运行时
ps aux | grep apache2
你会注意到有一个 root 拥有的进程,我认为这可能是原因,因为这个进程可以访问 root 拥有的文件/目录。
关于linux - Apache 如何访问 root 用户创建的 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383678/