背景:在 powerppc (IBM pSeries) 上启动 RHEL7
所以多年来我一直在无人看管的情况下启动,过去不得不使用 yaboot、NFS 等进行启动。现在正在尝试现代化。我有一个仅使用 HTTP (Apache)(和 TFTP)的工作启动。我的问题在于尝试仅使用 https 。不确定这是否可能,但人们会认为这是因为您可以指定 https。
如果我有 HTTP 和 HTTPS(相同的 htdocs)的先前工作的 Web 服务器答案,以及以下grub.conf
,它工作正常(IP 和 FQDN 显然被屏蔽):
menuentry 'Install RHEL 7 via Kickstart...' {
set root=http,WEBIP
linux https://WEBFQDN/software/rhel/ppc/ppc64/vmlinuz ro ip=dhcp ks=https://WEBFQDN/kickstart/rhel7-power.ks
echo 'Loading initial ramdisk ...'
inst.repo=https://WEBFQDN/software/rhel/
initrd https://WEBFQDN/software/rhel/ppc/ppc64/initrd.img
}
然而,tcpdump 显示它仍在使用 HTTP 处理大量流量。实际上,如果我将 Web 服务器重新配置为RedirectMatch (.*) https://WEBFQDN/$1
(将所有 http 重定向到 https,不提供 http),我会收到以下错误:
错误:无效的独立于架构的 ELF 魔法。
如果我删除RedirectMatch
(并返回允许 http 而不是重定向),它会再次正常工作。
因此,我可以使用 http,但理想情况下,Web 服务器只是 https(因为它包含许多除了 kickstart 之外的敏感数据)。这可能吗?我错过了一个关键标志吗?我试过root=https,...
但后来我得到一个“找不到文件”(我猜是不支持的网络选项)。
感谢您的任何指点!
因此,我最终确实从 Red Hat 后线得到了答案。它们表明 grub 不支持 HTTPS,即使一些文档表明您可以使用 HTTPS。事实上,您可以在配置中使用 HTTPS……但它仍会回滚并改用 HTTP。据他们说,Grub 没有加载任何证书或 SSL 库。因此,当时没有 HTTPS 支持。
然后,对该问题的答案并经过测试:grub.conf 配置为使用 TFTP 来获取 vmlinuz 和 initrd.img 文件(本地),而不是 HTTPS (HTTP)。ks=https://... 和 inst.repo=https://... 行可以是 HTTPS,因为一旦内核被加载,它就有 SSL 并且可以通过 HTTPS 获取 kickstart 文件和 repo 文件。这样,不使用 HTTP。