{"id":21072,"date":"2021-04-24T12:07:14","date_gmt":"2021-04-24T12:07:14","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=21072"},"modified":"2022-11-22T03:07:54","modified_gmt":"2022-11-22T03:07:54","slug":"how-chef-client-and-validation-works","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-chef-client-and-validation-works\/","title":{"rendered":"Chef Tutorials: How Chef Client and Validation works?"},"content":{"rendered":"\n<p><strong>validation.pem<\/strong><br>During the first chef-client run, client.pem private key does not exist. Instead, the chef-client will attempt to use the private key assigned to the chef-validator, located in \/etc\/chef\/validation.pem.<\/p>\n\n\n\n<p><strong>client.pem<\/strong><br>Every request made by the chef-client to the Chef server must be an authenticated request using the Chef server API and a private key. When the chef-client makes a request to the Chef server, the chef-client authenticates each request using a private key located in \/etc\/chef\/client.pem. During the initial chef-client run, the chef-client will register with the Chef server using the private key assigned to the chef-validator, after which the chef-client will obtain a client.pem private key for all future authentication requests to the Chef server.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>validation.pemDuring the first chef-client run, client.pem private key does not exist. Instead, the chef-client will attempt to use the private key assigned to the chef-validator, located in \/etc\/chef\/validation.pem. client.pemEvery request&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-21072","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/21072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=21072"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/21072\/revisions"}],"predecessor-version":[{"id":31824,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/21072\/revisions\/31824"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=21072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=21072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=21072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}