背景:在 powerppc (IBM pSeries) 上启动 RHEL7
多年来,我一直在无人值守的情况下进行 kickstart,过去不得不使用 yaboot、NFS 等进行 kickstart。现在尝试现代化。我有一个仅使用 HTTP(Apache)(和 TFTP)的 kickstart。我的问题出现在尝试使用 https仅有的。不确定这是否可行,但有人会认为这是可能的,因为您可以指定 https。
如果我有以前针对 HTTP 和 HTTPS 工作的 Web 服务器答案(相同的 htdocs),并且以下内容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),我收到以下错误:
错误:无效的与 arch 无关的 ELF magic。
如果我删除RedirectMatch
(并返回允许 http 而不是重定向),它会再次正常工作。
因此,我可以使用 http,但理想情况下,Web 服务器只是 https(因为它存储了大量除 kickstart 之外的敏感数据)。这可能吗?我是否遗漏了一个关键标志?我试过了,root=https,...
但结果却是一个“文件未找到“(我猜是不支持的网络选项)。
谢谢您的指点!
答案1
因此,我最终从 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。