Chef使用自签名证书通过https使用winrm发布引导windows VM
厨师长服务器(RHEL 6.5):11.16.4 Windows端点:Windows 2008 引导在http上运行良好(Chef使用自签名证书通过https使用winrm发布引导windows VM,windows,chef-infra,bootstrapping,winrm,Windows,Chef Infra,Bootstrapping,Winrm,厨师长服务器(RHEL 6.5):11.16.4 Windows端点:Windows 2008 引导在http上运行良好(使用winrm config allowenencrypeted=true和basic auth=true) 现在,我们正在https上尝试同样的事情(,但使用basic auth=false和AllowUnEncrypted=false) 生成了自签名证书(使用私钥),我已经通过端口443验证了telnet 为了检查连接,我从终端(windows 7)运行了以下命令 理想情
使用winrm config allowenencrypeted=true和basic auth=true
)
现在,我们正在https上尝试同样的事情(,但使用basic auth=false和AllowUnEncrypted=false
)
生成了自签名证书(使用私钥),我已经通过端口443验证了telnet
为了检查连接,我从终端(windows 7)运行了以下命令
理想情况下,如果winrs命令起作用(这意味着自签名证书生成和侦听器配置没有问题),那么应该这样做
非常感谢您的帮助/指点
更新:
ssl检查
能够验证证书--no-ssl对等验证
选项SSL\u CERT\u文件
指向包含远程机器证书的/opt/chef server/embedded/SSL/certs/cacert.pem
/opt/opscode/embedded/jre/jre/lib/security/cacerts上向密钥库添加证书的临时建议
更新: 这就是成功的原因 编辑文件
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/knife-windows-0.8.0/lib/chef/knife/bootstrap\u windows\u winrm.rb
并添加行
winrm.config[:无ssl\u对等验证]=true
编辑文件
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/knife-windows-0.8.0/lib/chef/knife/winrm.rb
并添加行
session\u opts[:no\u ssl\u peer\u verification]=如果配置有密钥,则为true(:no\u ssl\u peer\u verification)
它仍然会给出自签名错误,但至少会引导它
输出:
在引导前等待远程响应。深度为0-18:自签名证书
深度为0-18时:自签名证书
tpm72-win2K8R2.example.com。
收到tpm72-win2K8R2.example.com响应。
远程节点在0.0分钟后响应。
tpm72-win2K8R2.example.com上的引导厨师
深度为0-18时:自签名证书
深度为0-18时:自签名证书
tpm72-win2K8R2.example.com“Rendering”C:\Users\ADMINI~1\AppData\Local\Temp\bootstrap-22620-1423038641.bat“chunk 1”
深度为0-18时:自签名证书
深度为0-18时:自签名证书
tpm72-win2K8R2.example.com“Rendering”C:\Users\ADMINI~1\AppData\Local\Temp\bootstrap-22620-1423038641.bat“chunk 2”
刀子命令使用openssl库,它对您的windows证书存储没有任何线索,但使用它自己的
您必须在\embedded\ssl\certs\cacert.pem
中将远程计算机证书添加到ruby堆栈的cacert.pem文件中
您可能需要添加一个名为
SSL\u CERT\u FILE
的环境变量,以指向该文件,以便使用其他工具。谢谢您的建议。SSL_CERT_文件设置为/opt/chef server/embedded/SSL/certs/cacert.pem我已尝试在两个位置将远程计算机证书添加到cacert.pem/opt/chef/embedded/SSL/certs/cacert.pem
/opt/chef server/embedded/SSL/certs/cacert.pem
,以避免任何歧义,添加意味着我将远程计算机证书的内容复制到两个位置的cacert.pem文件的末尾。远程机器认证内容的形式为“----开始证书------等等----结束证书----------Ivan不确定您的评论结果,您是否仍然存在SSL错误?(带域身份验证示例的文档快速链接:)是错误仍然存在。在创建侦听器时,我注意到删除了您粘贴的链接中提到的空格,并且端口也正确(从windows计算机触发的winrs成功结果可以看出)。刀子ssl检查的输出为正(使用刀子ssl获取将其添加到受信任的\u证书后)。请让我知道我是否可以验证任何其他内容。@Ivan我真的认为linux机器无法绕过基本身份验证,如果可以,我将查看代码。同时,您可以尝试从您的工作站引导(在其上配置刀子等)。在试用中的一些更新我尝试了--node ssl verify mode选项(只是为了检查)在bootstrap中,windows winrm在/opt/opscode/embedded/jre/jre/lib/security/cacerts尝试了在link[link]中提到的选项,最后一个选择出现在我的脑海中,使用与http相同的参数通过https尝试(查看是否只是证书问题或证书警告中添加的身份验证问题)@Tensibai Error保持不变,保持参数与http相同(winrm config allowenencrypeted=true和basic auth=true
)。我将尝试此操作,以查看[link]是否有助于查看您的一个链接(3)似乎CA证书文件有一个配置选项:winrm.config[:CA\u trust\u file]=Chef::config[:knife][:CA\u trust\u file]如果Chef::config[:knife][:CA\u trust\u file]
那么您可以尝试添加knife[:CA\u trust\u file]=“opt/Chef server/embedded/ssl/certs/cacert.pem”
到您的knife.rb文件。@Tensibai更新了一个解决方法。似乎绕过了错误。感谢更新,它可能会帮助其他人:)
winrs -r:https://<fqdn Of windows EP>:443 -u:administrator -p:password_1 ipconfig
[root@v-ng25-rhel6u5-tpm722 ~]# knife bootstrap windows winrm v-ngibm71tpm7222k8.example.co.in -x Administrator -P 'password_1' -p 443 --bootstrap-version '11.16.4-1'
Waiting for remote response before bootstrap.at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
..at depth 0 - 18: self signed certificate
ERROR: No response received from remote node after 1.84 minutes, giving up.
ERROR: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed