Назад | Перейти на главную страницу

Let's Encrypt и локальная марионеточная разработка

Я разрабатываю манифесты Puppet в Vagrant VM. Я хотел бы настроить веб-сервер с завершением SSL, но очевидно, что проверка Let's Encrypt не удастся, если узел работает только на моем ноутбуке.

Есть ли хороший способ настроить Puppet для использования настоящего Let's Encrypt только на реальном сервере и создать самозаверяющий сертификат в среде разработки? Может быть, это поддельная реализация сервера Let's Encrypt, который обрабатывает все запросы с помощью самозаверяющего центра сертификации?

Подход, который я применил к своим собственным ящикам Vagrant, заключается в использовании локального сертификата snakeoil и параметризации моих классов там, где это необходимо, чтобы я мог передавать другой сертификат.

class custom::profile::apache(
  $vhost_domain    = $::fqdn,
  $use_letsencrypt = true,
){

  if $::custom::profile::apache::use_letsencrypt == true {
    $ssl_cert  = "/etc/letsencrypt/live/${::custom::profile::apache::vhost_domain}/cert.pem"
    $ssl_key   = "/etc/letsencrypt/live/${::custom::profile::apache::vhost_domain}/privkey.pem"
    $ssl_chain = "/etc/letsencrypt/live/${::custom::profile::apache::vhost_domain}/chain.pem"
    $require   = Exec["letsencrypt certonly ${::fqdn}"]
  } else {
    $ssl_cert   = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
    $ssl_key    = '/etc/ssl/private/ssl-cert-snakeoil.key'
    $ssl_chain  = undef
    $require    = undef
  }

  include ::apache

  ::apache::vhost { "https-${::custom::profile::apache::vhost_domain}":
    ...
    ssl_cert  => $ssl_cert,
    ssl_key   => $ssl_key,
    ssl_chain => $ssl_chain,
    require   => $require,
  }
}