如何关闭 RedHat Kickstartfile 下载的 SSL 证书验证

如何关闭 RedHat Kickstartfile 下载的 SSL 证书验证

我在用着领班用于通过 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  

http://man7.org/linux/man-pages/man7/dracut.cmdline.7.html

答案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>

相关内容