我正在试图写一个脚本在python中获取证书文件和私钥,并在Apache服务器上安装SSL证书。 我机器上的ssl.conf文件位于/etc/httpd/conf.d/目录下,我认为这是正常的。 但是,根据分布情况,ssl.conf文件可以包含哪些其他目录?
而ssl.conf是只有Apache 2的一个特性? 如果运行的服务器是Apache 1,我需要find并编辑httpd.conf文件吗?
您可以指定每个虚拟主机的证书…(利用几乎每个现代浏览器都支持的服务器指示)。 至于使脚本自动安装证书…这将主要是特定于发行版(除非你做了很多额外的编码,使其发生)大多数RHEL平台(如果不是全部)把东西放在/ etc / httpd / …其中debian风味把它放在/ etc / apache2 / …谁知道还有什么地方可以结束在其他发行版。
如果你坚持使用一个特定的发行版,请记住,还有很多不同的方式来做你的configuration。 你可以有一个单一的巨石configuration文件,其中包含的一切…你可以分解成更小的组件加载其他configuration…(即如何httpd.conf加载conf.d / *。conf)…甚至按照每个站点,每个模块和其他十几种方式分别进行configuration。
然而,默认情况下,大多数平台仍然运行Apache 1 …传统上有1个巨石configuration,configuration所有的Apache …我不认为有一个选项来加载额外的configuration文件。 Apache 2.0.41引入了包含通配符的东西,例如:
包括/etc/httpd/conf.d/*.conf 包括/etc/httpd/mods-enabled/*.load
这鼓励了更多的破碎的configuration。
作为一个好主意,我强烈build议你尽可能地标准化你的环境。 试图用多种types的configuration和多个版本来支持多种环境是绝对的噩梦。 另外,Apache 1超越了EoL。 当然,修补程序可能仍然会被释放…但我不会依赖它来保护任何安全的环境。 我还没有find任何仅在Apache 1中可用的东西.Apache 2已经稳定了8年了,现在是升级的时候了。
在Apache 1 mod_ssl不是一个内置的模块,在那里有几个不同的模块来启用SSL我认为在大多数情况下,期望是你只需要在你现有的configuration文件中包含所需的指令。
我怀疑你可以写一个通用的脚本,适用于所有平台的变化太多,而且对于复杂的configuration,你的脚本几乎肯定会破坏事情,而不是成功。
不需要在ssl.conf文件中添加与ssl相关的configuration。 在我有大约30个虚拟主机的主机上,ssl.conf大部分都是未使用的,我将虚拟主机特定设置(certs)存储在该虚拟主机的configuration文件中。
但是要在基于Debian的系统上回答您的问题,您可以在/etc/apache2/mods-available/ssl.conffind每个服务器的设置。
这是不能做到的。 你最近的是apxs -q SYSCONFDIR 。
你需要发行特定的处理。
即使随机系统pipe理员也不需要遵循任何约定。
FWIW,有一个Apache维基页面,试图logging发行版特定的布局 。