2014-10-20 2 views
0

Я действительно пытаюсь выяснить, может ли Puppet использовать внешние сертификаты, потому что отдел информационной безопасности моей организации вышел с более сильным сертификатом безопасности, который я попросил у них набор, чтобы узнать, он работает или нет. Я все еще намерен иметь сертификаты выпускников марионеток, но два сертификата другим агентам ведут себя так же, как обычный способ мастера, выдающего сертификаты, и автозаписывают их.Кукольный внешний сертификат: Мастер не CA

Набор содержит нечто вроде следующего:

  1. ABCROOTCA2015.pem - ABC Root CA 2015 сертификат
  2. ABCSERVERCA2015.pem - ABC сервер CA 2015 сертификат
  3. puppet2-64.abc.local. p12 (сервер) - закрытый ключ и сертификат GLPI-49.abc.local - пароль: ###
  4. GLPI-49.abc.local.p12 (агент) - закрытый ключ и сертификат 10.5.137.175 - пароль: ###

Поскольку внешние сертификаты требуют, чтобы Apache Passenger работал над этим, я установил пассажира Apache. Эти два сертификата выше были помещены в их соответствующие папки (/ var/lib/puppet/ssl/certs и с другой копией сертификата сервера, помещенного в папку/private_keys.

Учитывая два файла сертификата, приведенных выше, это мой конфигурационный файл, Apache конец, хранится в "/ и т.д./apache2/сайты с поддержкой/PuppetMaster" (это для Ubuntu)

<VirtualHost *:8140> 
     SSLEngine on 
     SSLProtocol -ALL +SSLv3 +TLSv1 
     SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP 

     SSLCertificateFile  /var/lib/puppet/ssl/certs/mimosserverca2015.pem 
     SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/mimosserverca2015.pem 

     #SSLCertificateChainFile /var/lib/puppet/ssl/certs/mimosrootca2015.pem 
     SSLCACertificateFile /var/lib/puppet/ssl/certs/mimosrootca2015.pem 

    # If Apache complains about invalid signatures on the CRL, you can try disabling 
     # CRL checking by commenting the next line, but this is not recommended. 
     SSLCARevocationFile  /var/lib/puppet/ssl/ca/ca_crl.pem 
     SSLVerifyClient optional 
     SSLVerifyDepth 1 
     # The `ExportCertData` option is needed for agent certificate expiration warnings 
     SSLOptions +StdEnvVars +ExportCertData 

     # This header needs to be set if using a loadbalancer or proxy 
     RequestHeader unset X-Forwarded-For 

     RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e 
     RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e 
     RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e 

     DocumentRoot /usr/share/puppet/rack/puppetmasterd/public 
     #RackBaseURI/
     <Directory /usr/share/puppet/rack/puppetmasterd> 
      Options None 
      AllowOverride None 
     # Apply the right behavior depending on Apache version. 
      Order allow,deny 
      Allow from all 
     </Directory>  

#Misc LoadModule passenger_module /var/lib/gems/1.8/gems/ пассажир-4.0.53/xxx.so PassengerRoot /var/lib/gems/1.8/gems/passenger-4.0.53 PassengerRuby /usr/bin/ruby1.8

ErrorLog /var/log/apache2/puppetmaster_ssl_error.log 
    CustomLog /var/log/apache2/puppetmaster_ssl_access.log combined 

</VirtualHost> 

Для puppet.conf у кукловода. Я только добавил следующие дополнительные строки:

[main] 
    ca_server = puppet2-64.mimos.local 

    [master] 
    ca = false 
    certname = mimosserverca2015 

Для одного из агентов, которые должны быть проверены на это, я добавил ca_server вещь в файле конфигурации кукольного агента. Служба кукольного мастера Webrick была отключена, так как служба apache2 была включена.

Когда агент выполнен, отображается ошибка 400 с подмассовым сообщением Master не является CA.

Если я уже определил хозяин и локальный корневой сертификат внутри файла кукольного маска в папке apache2, не должен ли я получать ту же функцию, что и обычно?

Или из-за того, что кукольный мастер не возьмет собственный файл сертификата как свой собственный, так что мы должны переименовать этот файл?

До сих пор я проверял, но не так много материала для проверки, если только есть шаги, которые могут не соответствовать моей настройке ЦС.

Может ли кто-нибудь помочь просветить эту проблему? Большое спасибо!

M

ответ

1

Ошибка Master is not a CA вызывается функция центра сертификации на вашем кукловод может быть отключен, что вы явно делаете, указав ca = false в puppet.conf под [master].

Использование внешнего СА хорошо покрыто в документе SSL Configuration: External CA Support. Однако он включает в себя следующее предостережение, которое несовместимо с вашим требованием: «Я все еще намерен иметь сертификаты выпускников кукловодов, но два сертификата другим агентам ведут себя так же, как обычный способ мастера, выдающего сертификаты, и автозаписывают их «.

Эти конфигурации - все или ничего, а не смешивание и совпадение. При использовании внешнего ЦС встроенная служба кукольного ЦС должна быть отключена и не может использоваться для выдачи сертификатов SSL.

Кроме того, Puppet не может автоматически распространять сертификаты в этих конфигурациях - у вас должна быть ваша собственная полная система для выдачи и распространения сертификатов .

Проще говоря, при использовании внешнего ЦС с помощью Puppet вы несете ответственность за подписание и распространение сертификатов.

(В то время как вы могли бы попробовать удалить са = ложь, то вполне возможно, что вы столкнетесь с проблемами, как это конфигурация не поддерживается.)

Если поставить подписанный агент сертификат в системе агента, либо заменяя пути по умолчанию или дополнительно указывая host*configuration options, тогда агент не должен пытаться использовать (отключенные) функции CA для Мастера Puppet.

Смежные вопросы