Problemas de resumo do mestre de fantoches

1

Estou executando a seguinte configuração do Puppet:

  • Mestre de marionetes: CentOS 6.4 x86_64 com puppet-server-3.2.1-2.2 e openssl-1.0.0-27.el6_4.2.x86_64
  • Agente de marionetes 1: RedHat AS 4.8 x86 com puppet-0.25.6-1.el4 e openssl-0.9.7a-43.20.el4
  • Agente de marionetes 2: RHEL 5.10 x86 com puppet-2.6.18-3.el5 e openssl-0.9.8e-26.el5_9.1

Notei que meu agente RedHat 4 não pode se conectar ao meu mestre de marionetes e acho que o motivo é porque a versão do libssl empacotado com RH4 ( 0.9.7a-43.20 no meu caso) não pode gerenciar os resumos gerados pelo servidor Puppet .

Os testes que realizei:

  • De um agente RedHat 4 que não funciona (com OpenSSL v 0.9.7a-43.20.el4 ):

# openssl s_client -host puppetmaster.test.lan -port 8140 -cert /etc/puppet/ssl/certs/rh4as.test.lan.pem -key /etc/puppet/ssl/private_keys/rh4as.test.lan.pem -CAfile /etc/puppet/ssl/certs/ca.pem 
CONNECTED(00000003)
depth=1 /CN=Puppet CA: puppetmaster.test.lan
verify return:1
depth=0 /CN=puppetmaster.test.lan
verify error:num=7:certificate signature failure
verify return:1
depth=0 /CN=puppetmaster.test.lan
verify return:1
---
Certificate chain
 0 s:/CN=puppetmaster.test.lan
   i:/CN=Puppet CA: puppetmaster.test.lan
 1 s:/CN=Puppet CA: puppetmaster.test.lan
   i:/CN=Puppet CA: puppetmaster.test.lan
---
Server certificate
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
subject=/CN=puppetmaster.test.lan
issuer=/CN=Puppet CA: puppetmaster.test.lan
---
No client certificate CA names sent
---
SSL handshake has read 3793 bytes and written 2853 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 4096 bit
Secure Renegotiation IS supported
SSL-Session:
Protocol  : TLSv1
Cipher    : DHE-RSA-AES256-SHA
Session-ID: 8B8607495273640FB4BCB80C5C1CE261FED1633CA112C1D216BE187EDEA81F77
Session-ID-ctx: 
Master-Key: A2A3AC5B0679C27FFE070D0B3154233EC4D0F17310148AE7B6FF502A7DB95679D33BB097C0ED89AE67AA42E95BD4D952
Key-Arg   : None
Krb5 Principal: None
Start Time: 1392216496
Timeout   : 300 (sec)
Verify return code: 7 (certificate signature failure)
---
closed
  • De um agente RedHat 5 em funcionamento (com OpenSSL v 0.9.8e-26.el5_9.1 ):

# openssl s_client -host puppetmaster.test.lan -port 8140 -cert /etc/puppet/ssl/certs/rhel5.test.lan.pem -key /etc/puppet/ssl/private_keys/rhel5.test.lan.pem -CAfile /etc/puppet/ssl/certs/ca.pem
CONNECTED(00000003)
depth=1 /CN=Puppet CA: puppetmaster.test.lan
verify return:1
depth=0 /CN=puppetmaster.test.lan
verify return:1
---
Certificate chain
 0 s:/CN=puppetmaster.test.lan
   i:/CN=Puppet CA: puppetmaster.test.lan
 1 s:/CN=Puppet CA: puppetmaster.test.lan
   i:/CN=Puppet CA: puppetmaster.test.lan
---
Server certificate
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
subject=/CN=puppetmaster.test.lan
issuer=/CN=Puppet CA: puppetmaster.test.lan
---
No client certificate CA names sent
---
SSL handshake has read 3793 bytes and written 2831 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol  : TLSv1
Cipher    : DHE-RSA-AES256-SHA
Session-ID: 7B70B803D8D0FFC65F2696D337EB40CDE41D188F9F1BA1D7FE416DA326B49AFD
Session-ID-ctx: 
Master-Key: BE57138CA99AA4AA59769B3E8396E9C25594264E196FB50DB066679EA569311521F1BBBCD25962B780A38D95A3AD9346
Key-Arg   : None
Krb5 Principal: None
Start Time: 1392224552
Timeout   : 300 (sec)
Verify return code: 0 (ok)
---
closed
  • Do mestre das marionetes:

# puppet cert --list --all
+ "rh4as.test.lan"      (SHA256) 69:BD:D9:B6:31:6B:3E:90:9B:5E:1B:90:FA:24:08:1A:48:31:B1:17:65:DF:93:26:70:29:5A:C3:3E:C8:0F:7E
+ "rhel5.test.lan"      (SHA256) 83:58:A9:25:7C:9A:41:C9:A7:7E:45:26:40:EE:D0:05:9A:31:6E:8D:15:CE:57:86:0C:DA:E0:D0:2A:9C:B3:DB
+ "puppetmaster.test.lan" (SHA256) 9C:AC:8E:CA:71:24:2B:BB:61:52:01:4F:F1:DF:BD:B6:25:6C:DA:61:44:E4:1E:71:77:DF:2F:BA:AE:A9:40:FD (alt names: "DNS:puppet", "DNS:puppet.test.lan", "DNS:puppetmaster.test.lan", "DNS:puppetmaster")

Testes adicionais:

  • Assegurei-me de que todos os servidores estão sincronizados corretamente com o servidor NTP
  • Eu apaguei todos os certificados locais no agente RH4AS e os reeditou
  • eu deletei referências locais para o agente RH4AS no mestre de marionetes
  • instalei da fonte Puppet agent v2.6.0 no servidor RH4AS, mas tive o mesmo problema

Eu li estes links:

e percebi que tinha duas opções:

  • atualize minha versão do OpenSSL para + 0.9.8 ( 1.0.0 para ser seguro)
  • faça o downgrade do resumo usado pelo mestre de marionetes de SHA256 para SHA1 (ou talvez mesmo MD5 )

Infelizmente, a opção 1 (atualização do OpenSSL) não é aplicável em meu ambiente. Então eu acho que estou preso com a degradação do resumo usado pelo mestre das marionetes. Mas não consigo encontrar uma opção em todo o man puppet.conf que possa ser usada para esse objetivo. Eu tentei jogar com o parâmetro keylength , mas sem sucesso.

Se alguém puder me ajudar nessa questão, eu realmente aprecio.

Agradecemos antecipadamente a todos.

    
por Iceman94 12.02.2014 / 18:34

2 respostas

0

Parece que você tem o problema discutido em Recurso # 21029: Permitir controle sobre o resumo usado para criar certificados de CA . Parece que uma solução alternativa para isso não será implementada no fantoche e, portanto, você precisa criar os certificados manualmente com o OpenSSL.

    
por 13.02.2014 / 15:48
1

Acabei de fazer downgrade da versão do meu Puppet Master da ramificação 3.x para a 2.7.x (conforme indicado neste post: link ).

Mas eu considero como provavelmente válida a resposta do sciurus, como me disseram os desenvolvedores do Puppet que eu poderia contornar esse problema configurando uma CA compatível com SHA1.

    
por 24.02.2014 / 17:43