![如何关闭 RedHat Kickstartfile 下载的 SSL 证书验证](https://linux22.com/image/584969/%E5%A6%82%E4%BD%95%E5%85%B3%E9%97%AD%20RedHat%20Kickstartfile%20%E4%B8%8B%E8%BD%BD%E7%9A%84%20SSL%20%E8%AF%81%E4%B9%A6%E9%AA%8C%E8%AF%81.png)
我在用着领班用于通过 ipxe 启动 RedHat 6.0 (但那不重要 ;)
用于启动的内核参数是:
kernel http://192.168.1.5/dist/rhel/6.0/os/x86_64/images/pxeboot/vmlinuz ks=https://puppet.at.internal/unattended/provision ksdevice=bootif network kssendmac
当 anaconda 尝试加载 KS 文件时,它给出了以下错误:
下载错误https://puppet.at.internal/unattended/provision:SSL CA 证书有问题(路径?访问权限?)
不幸的是,谷歌和 Redhat 文档一样有用 - 没有关于如何关闭 SSL 验证的信息 :( 由于我使用 at.internal 作为域,所以我也无法获得官方证书,但由于公司限制,我必须使用 https...
如果可以将 CA(或 certfile)添加为 bootcmd,那么也是可以的。
在此先感谢您的帮助!
答案1
使用 anaconda 选项noverifyssl
禁用 SSL 证书检查
具体来说,在 pxebooting 的 DEFAULT 文件中,在 APPEND 部分,inst.noverifyssl
在 initrd 行之前列出。它应该如下所示:
APPEND inst.noverifyssl initrd=/<path to your kernel> ks=https://<path to your repo>
答案2
在我偶然发现这一点之后,似乎关闭 SSL 验证的配置选项被重命名为
md.noverifyssl
答案3
据我所知,使用 CentOS 7 和托管在未正确 SSL 认证的 URL 上的 kickstart 文件进行测试时,noverifyssl
无法在内核行中指定您尝试的位置。
noverifyssl
是 Anaconda 标志,但 Anaconda 不解析此命令,但 initrd.img 会解析。
我尝试了以下测试:
..
将显示此行,因为它在所有测试中保持不变
vmlinuz initrd=initrd.img inst.stage2=[auto-populated stage 2 path]
.. ks=https://my.badly.certd-url.com/dummy/url.ks noverifyssl
结果:curl 因不安全的 CA 证书而出错,忽略了该标志
.. ks=https://my.badly.certd-url.com/dummy/url.ks --noverifyssl
结果:curl 因不安全的 CA 证书而出错,忽略了该标志
.. ks="https://my.badly.certd-url.com/dummy/url.ks -k"
我尝试了此方法,看看是否可以将-k
标志传递给 curl,从而允许不安全的连接。结果:curl 错误,由于引号而无法解析
.. ks=https://my.badly.certd-url.com/dummy/url.ks\ -k
我尝试了此方法,看看是否可以将-k
标志传递给 curl,从而允许不安全的连接。结果:curl 因不安全的 CA 证书而出错,忽略了该标志
出现错误后,当我的安装过程转储到 dracut 紧急 shell 时,我执行了
> curl -k https://my.badly.certd-url.com/dummy/url.ks
并且它返回了我的.ks
文件。
我自己解决了这个问题,方法是完全避免这个问题,并将我的脚本重新托管到另一台具有适当证书的服务器上。我使用了 github repo 并指向文件的原始 url .ks
。
答案4
具体来说,在 pxebooting 的 DEFAULT 文件中,在 APPEND 部分中,inst.noverifyssl
在 initrd 行之前列出。它应该如下所示:
APPEND inst.noverifyssl initrd=/<path to your kernel> ks=https://<path to your repo>