- From: Mohammad Fattahian <
>
- To:
- Subject: [chef] RE: Re: Upgrade Chef from 11.6 to 12.3
- Date: Tue, 12 May 2015 09:36:47 -0400
It helps,
Thanks for reply.
Mohammad
-----Original Message-----
From: Daniel DeLeo
[mailto:
On Behalf Of Daniel DeLeo
Sent: Monday, May 11, 2015 1:53 PM
To:
Subject: [chef] Re: Upgrade Chef from 11.6 to 12.3
On Monday, May 11, 2015 at 10:36 AM, Mohammad Fattahian wrote:
>
When I upgrade Chef (on the clients) from 11.6 to 12.3 the connection to
>
server (Chef 11.6) broken.
>
>
:~#
>
chef-client
>
Starting Chef Client, version 12.3.0
>
Creating a new client identity for test.domain.com
>
(http://test.domain.com) using the validator key.
>
[2015-05-07T16:46:17-04:00] ERROR: SSL Validation failure connecting
>
to host: xxxx.domain.com (http://xxxx.domain.com) - SSL_connect
>
returned=1 errno=0 state=SSLv3 read server certificate B: certificate
>
verify failed
>
>
======================================================================
>
========== Chef encountered an error attempting to create the client "
>
test.domain.com (http://test.domain.com) "
>
======================================================================
>
==========
>
>
[2015-05-07T16:46:17-04:00] FATAL: Stacktrace dumped to
>
/var/chef/cache/chef-stacktrace.out
>
Chef Client failed. 0 resources updated in 1.306760691 seconds
>
[2015-05-07T16:46:17-04:00] ERROR: SSL_connect returned=1 errno=0
>
state=SSLv3 read server certificate B: certificate verify failed
>
[2015-05-07T16:46:17-04:00] FATAL:
>
Chef::Exceptions::ChildConvergeError: Chef run process exited
>
unsuccessfully (exit code 1)
This isn’t a bug. In the past, chef-client did not verify the SSL
certificate of the server, which leaves you vulnerable to a MITM attack. If
you are sure you don’t need this protection (I would argue that
defense-in-depth means you should not turn this off, even if you’re only
connecting on a private network), then you can set the old default with
`ssl_verify_mode :verify_none`
>
>
This is what I do to fix it:
>
>
1. delete the node / client from Chef WEB Interface
This isn’t necessary, the client.pem is used for application-level
authentication, which is not relevant to the transport layer encryption.
>
2. add “ssl_verify_mode :verify_peer” into client.rb (client side)
This isn’t necessary, `ssl_verify_mode :verify_peer` is the default in Chef
Client 12+
>
3. delete client.pm (http://client.pm) (client side)
Again, this isn’t required because the client.pem is only relevant to
application layer authentication.
>
4. mkdir /etc/chef/trusted_certs/
>
5.
>
:/var/opt/chef-server/nginx/ca#
>
scp server.crt
>
:/etc/chef/trusted_certs/
These two steps are all you need to do.
>
6. knife bootstrap CLIENT --sudo -x toor
You only need this step because you’ve deleted the client/node on the
server, if you skip steps 1 and 3, then you don’t need this. FWIW, if you
have downloaded your Chef Server’s cert to your workstation and you’re
running knife 12+ on your workstation, it will copy your server’s cert to
the bootstrap node as part of the bootstrap process.
>
7. To check the SSL configuration : knife ssl check -c
>
/etc/chef/client.rb
>
>
>
Any other workaround?
You can make knife download the certificates from the server with `knife ssl
fetch`. HOWEVER, this is only as good as clicking the “trust this
certificate for this server” from the security warning pop-up on a browser.
If you’re already MITM’d then you’re just trusting the MITM's certificate.
If you use this command then you should take a SHA-256 of the cert on the
server and compare to what you downloaded.
>
>
Mohammad
I’ll look into having the error messages on the client provide some of this
information so it’s easier to resolve when this comes up.
HTH,
--
Daniel DeLeo
Archive powered by MHonArc 2.6.16.