AWS上的Chef:您如何更新服务器上的证书?

时间:2015-06-22 19:02:53

标签: ssl amazon-web-services configuration server chef

我正在尝试使用笔记本电脑上的刀连接到AWS上托管的新配置的Chef服务器。我知道下面列出的是正确的方向,但我不确定如何解决这个问题。

If you are not able to connect to the server using the hostname ip-xx-x-x-xx.ec2.internal 
you will have to update the certificate on the server to use the correct hostname.

3 个答案:

答案 0 :(得分:1)

我有同样的问题。问题是EC2实例将其私有IP放入其主机名文件中。这导致厨师自己将证书分配给内部IP。执行knife ssl check时,您可能会收到如下所示的错误消息:

ERROR: The SSL cert is signed by a trusted authority but is not valid for the given hostname
ERROR: You are attempting to connect to:   'ec2-x-x-x-x.us-west-2.compute.amazonaws.com'
ERROR: The server's certificate belongs to 'ip-y-y-y-y.us-west-2.compute.internal'

连接到公共IP是正确的,但是如果在签署证书时没有将厨师服务器配置为使用公共DNS,则会继续出现此错误。

编辑: Chef的文档曾经有过纠正此问题的步骤,但自从我最初回答这个问题以来,他们已经从他们的教程中删除了这些步骤。在ec2实例上,以下步骤适用于Chef 12,Ubuntu 16。

  1. ssh到您的厨师服务器
  2. 使用以下命令sudo vim /etc/hostname
  3. 打开您的主机名文件
  4. 删除包含内部ip的行,并将其替换为您的公共IP并保存文件。
  5. 使用sudo reboot
  6. 重启服务器
  7. 运行sudo chef-server-ctl reconfigure(此签署新证书,等等)
  8. 返回工作站并使用knife ssl fetch,然后使用knife ssl check,您应该好好去。
  9. 在将厨师安装到服务器之前,您还可以做的只是完成步骤1 - 4。

答案 1 :(得分:0)

您无法从AWS外部连接到内部IP(或指向内部IP的DNS)。那些是nonroutable IP addresses

而是连接到实例的公共IP(如果有的话)。

答案 2 :(得分:0)

  • 更新Chef Server上的公共IP
  • 在服务器上运行chef-server-ctl reconfigure(无需重新启动)
  • 使用新的IP地址更新Workstation上的knife.rb
  • 在Chef Workstation上运行'knife ssl fetch'

这应解决问题,确认运行'刀客户列表'