Kukla ana bilgisayar adı sunucu sertifikasıyla eşleşmiyor


10

Yerel olarak üretim kurulumumuzu test edebilmem için kukla yüklü bir Ubuntu VM kurmaya çalışıyorum. Birbirinizle konuşmak için kukla ustası ve kukla almakta zorlanıyorum. Seni adımlarımdan geçireyim. (Sunucunun hostname"web1.xxx.xxx.net" biçimindeki bir FQDN'sidir).

Öncelikle, /etc/puppet/sslyeni bir başlangıç ​​yapabilmek için dizinden tüm pem dosyalarını (tabii ki CA pems hariç) temizlerim . puppetca --listsonuç döndürmez.

Sonra puppetd --testkuklacı için bir CSR oluşturmaya çalıştım . puppetca --listartık ana bilgisayar adımı içeriyor ("web1.xxx.xxx.net").

Sonra koşuyorum puppetca --sign web1.xxx.xxx.net. Şimdi puppetca --listyine boş - şimdiye kadar her şey iyi çalışıyor.

Son olarak puppetd --testtekrar koşuyorum . Aşağıdaki çıktıyı alıyorum:

err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

/etc/puppet/sslDizinin içindekiler listelendiğinde, sunucu adımla eşleşen doğru sunucu adına sahip PEM dosyaları gösterilir hostname. Bu soruna nasıl saldırılacağına dair bir fikri olan var mı?

Yanıtlar:


9

Bunun nedeni, istemcinin varsayılan olarak sunucu ana bilgisayar adı 'kukla' ile bağlantı kurması ancak sunulan sertifikanın öznesi veya SubjectAltName özniteliği olarak 'kukla' olmamasıdır.

Düzeltmek için şunları yapabilirsiniz (birini seçin):

  1. yerine çalıştırarak Kuklacı sertifikasını başlatılıyor puppetdçalıştırarak başlatılamıyor puppetmasterd- Bu sertifika konu adı "kukla" içermesine sebep olur.

  2. işleri şansa bırakmak yerine puppetca --generate --certdnsnames puppet:puppet.mydomain.com web1.xx.xx.xx.net- certdnsnames seçeneği, sertifikaya dahil edilecek SubjectAltNames listesini belirtir; istemcinin sunucuyla iletişim kurmak için kullanacağı herhangi bir adla iki nokta üst üste işaretli bir liste olmalıdır .

  3. sadece puppetd --testistemcide çalıştırmak yerine puppetd --test --server=web1.xx.xx.xx.net, istemcinin bağlandığı sunucu adı, sunucu tarafından sunulan sertifikada gerçekte olan ad olmalıdır.

Daha fazla sorun giderme için masterzen'in mükemmel blog girişine göz atın: Kukla SSL Açıklaması


3

Kukla yöneticisi günlük dosyasını kontrol ettiniz mi? Aynı sorunu buldum ve sunucunun sertifika bilgilerini günlüğe kaydettiğini gördüm:

[2012-02-28 16:21:09] INFO  
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 2 (0x2)
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: CN=ca
        Validity
            Not Before: Feb 26 16:32:46 2012 GMT
            Not After : Feb 24 16:32:46 2017 GMT
        Subject: CN=ubuntu.localdomain

Konu alanı CN "ubuntu.localdomain" olduğunu gösterir, bu yüzden kukla yaparak:

puppetd -t --server=ubuntu.localdomain --fqdn=myfqdn

Bu yardımcı olur umarım :-)


2

Pau'nun cevaplarına ek olarak, kuklacılar sertifikasını aşağıdakileri kullanarak inceleyebileceğinizi vurgulamak isterim:

openssl x509 -text -in /var/lib/puppet/ssl/certs/<hostname_of_puppet_master>

Ardından istemciden geldiğinizde aynı ana bilgisayar adını kullandığınızdan emin olun:

puppetd --server <hostname_of_puppet_master> <etc>

0

Her iki sunucu da çözebilir mi? Benim tahminim, VMing olduğunuz için ad çözümlemesini kaçırmış olabileceğinizdir. Sunucuların birbirini çözmesine izin vermek için DNS kullanmıyorsanız /etc/hosts, her iki sunucudaki dosyanıza girişler eklemeniz gerekir .

Kukla, ana bilgisayar adlarının doğru IP'lere çözümlenmesini gerektirir, bu olmadan bahsettiğiniz hatayı alırsınız. Bunu yaptıktan sonra sertifikaları yeniden oluşturmanız gerekebilir. Her iki makine de ana bilgisayar adıyla ping atabiliyor olmalıdır.

VM'lere dikkat etmeniz gereken bir diğer şey de sunuculardaki saatleri senkronize etmenizdir. Bunu yapmazsanız, muhtemelen sertifikalar geçersiz olacaktır.


Ah, belirtmeliydim. Kukla ve Puppetmaster aynı sunucuda çalışıyor; VM. Ve evet, FQDN kullanarak bilgisayarı kendinden pingleyebilirim.
RISCfuture

Üzgünüm Joshua bu yanlış. kukla sunulan sertifikaya karşı DNS-> IP doğrulaması yapmaz. Bu mu hataya neden olan şey certname doğrulama, ana bilgisayar adını yapın.
eric sorenson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.