我刚刚开始做自己的托管,似乎选择文件位置通常有一些常见的做法。
例如,我发现本网站这表明,存储 SSL 证书的标准位置因发行版而异:
Linux 为所有内容指定了目录。您已经熟悉 /var、/etc 和其他目录,它们是文件系统层次结构标准 (FHS) 的一部分。
好吧,猜猜看,也有一个指定位置用于存储 SSL 证书。
乌本图:
/etc/ssl/certs/
CentOS:
/etc/pki/tls/certs/
这些位置是否有更正式的记录?我想象的是“Ubuntu 常用关键文件的标准文件位置”。
我读这个问题,有时似乎没有标准。但这篇文章似乎另有说法,至少对于某些文件而言。
也许相关的是 nginx 配置文件夹的布局方式不同(在conf.d
某些发行版中保存配置文件,而在sites-available
其他发行版中保存配置文件)。这些差异到底从何而来?据我所知,nginx 是由单个组织发布的单个应用程序。
答案1
没有权威机构来决定文件应该放在哪里。阅读任何文档:操作指南、参考手册,并查看软件包安装的任何看起来像配置文件的内容。
很久以前,有人开始构建启用 https 的 nginx,他们的打包决策在很多文档中重复出现。对系统上的每个包重复此操作,从而建立起一套关于事物所在位置的约定。
请注意,即使对相同的源代码进行大量修改,仍可正常运行。配置文件、添加的支持脚本、非上游的代码补丁、编译时选项。虽然不理想,但这些差异确实存在。
Red Hat/CentOS 和 Debian/Ubuntu 都提供了一个基于 Mozilla 工作的 ca-certificates 包,作为一个大包。但除了系统 PKI 目录不同之外,更新包的工具也不同。Debian 有更新 CA 证书它基于 openssl,而 EL 有更新 CA 信任它将其抽象为具有二进制文件的 p11-kit 库trust
。
PKI 是一个相当普遍的问题,因此要知道将证书放在其他地方是常见的,也是可以接受的。没有理由要求 Web 服务器的证书必须放在系统存储中。Debian 手册的 httpd 配方显示了这一点:如果可用,不妨使用 Let's Encrypt 证书,默认情况下这些证书位于/etc/letsencrypt/
。