2011-12-27 16 views
0

Ubuntu 11.10 EC2インスタンス(ami-a562a9cc)を使用してpuppetmasterとpuppetクライアントを設定しようとしています。自動証明書の署名を有効にしました。私は人形のクライアントからのコマンドを発行するたびしかし:EC2 Ubuntu 11.10 Puppetホスト名のミスマッチエラー

#puppetエージェント--server人形--waitforcert 60 --test

は、証明書が署名し得るが、それはエラーをスローし、カタログファイルを実行しません。

エラーメッセージ:

ERR:リモートサーバーからカタログを取得できませんでした:ホスト名がサーバ証明書と一致していなかった 警告:失敗したカタログ ERRにキャッシュを使用しない:カタログを取得できませんでした。実行をスキップする err:レポートを送信できませんでした:ホスト名がサーバ証明書と一致しません

PuppetMasterにマニフェストファイルを適用するとうまくいきますが、人形クライアントでは機能しません。

私は既にAmazon Linux & Centosで人形環境をセットアップしており、それをうまく使いこなしました。しかし、私は

答えて

6

人形が通信するための標準的なX.509のSSL証明書を使用してのUbuntu 11.10

おかげ Sanket Dangiのため、これらの問題に直面しています。これらはHTTPSで使用されているのと同じ証明書なので、同じメンタルモデルを使って考えることができます。

この問題は、ほとんどの場合、人形エージェントが、人形のマスター証明書の件名フィールドまたはx.509 alt namesフィールドに記載されていない名前を使用している状況によって発生します。

この問題を解決するには、「エージェントがマスターの証明書に記載されているマスターに連絡するために使用している名前ですか?

この質問に答えるには、エージェントがマスターに連絡するためにエージェントが使用している名前を判別する必要があります。あなたの例では、--server puppetオプションを指定して以来、人形は使用されている名前です。我々は、エージェントが使用している知っていることを今

% puppet agent --configprint server 
puppetmaster.acme.com 

:あなたが人形の展開で作業している場合は、あなた自身がセットアップ、あなたが戻って、このような何かを印刷する必要がありますコマンドpuppet agent --configprint serverを使用して構成された名前を見つけることができませんでした"puppetmaster.acme.com"という名前でマスターに連絡すると、次の質問は "puppetmaster.acme.comは"マスターのSSL証明書にあります。

この疑問に答えるには、パペットマスターに行って、使用されていないx.509 SSL証明書を調べます。これは次のコマンドで行うことができます。このコマンドは--configprintオプションを使用して、パペットマスターが使用する証明書の名前を調べます。通常、これはホスト名だけです。 puppet cert printコマンドは、人間が読める形式で証明書を印刷します。これはすでに慣れている可能性があるopenssl x509 -text -noout -in ...コマンドと同じです。

[email protected]:~# puppet cert print $(puppet master --configprint certname) 
Certificate: 
Data: 
    Version: 3 (0x2) 
    Serial Number: 2 (0x2) 
    Signature Algorithm: sha1WithRSAEncryption 
    Issuer: CN=Puppet CA generated on pe-centos6.puppetlabs.vm at Tue Jan 3 14:54:26 PST 2012 
    Validity 
     Not Before: Jan 2 22:55:16 2012 GMT 
     Not After : Jan 1 22:55:16 2017 GMT 
    Subject: CN=pe-centos6.localdomain 
    Subject Public Key Info: 
     Public Key Algorithm: rsaEncryption 
      Public-Key: (1024 bit) 
      Modulus: 
       00:d2:51:86:31:b0:d8:da:80:1c:b9:e3:74:6b:c0: 
       2a:3c:b2:1a:dd:2b:1e:14:1d:53:b3:de:06:78:a7: 
       c2:bb:ad:bc:7e:91:60:01:d5:83:a7:14:c5:55:ea: 
       09:05:4e:c8:6e:83:93:a2:fb:e6:59:11:c1:05:88: 
       08:53:85:4f:6b:ef:a4:d6:14:6c:d8:56:e9:7c:79: 
       30:97:3a:fc:71:26:20:c7:15:5c:1b:d7:9d:e9:35: 
       08:a8:e2:5d:6c:a3:0d:0b:0e:90:dd:51:15:14:d6: 
       3f:6e:ab:2d:c8:0d:7f:4a:69:a7:7e:17:a2:d5:59: 
       be:c4:ba:a8:f7:54:db:b5:5f 
      Exponent: 65537 (0x10001) 
    X509v3 extensions: 
     X509v3 Subject Alternative Name: 
      DNS:pe-centos6.localdomain, DNS:puppet 
     X509v3 Basic Constraints: critical 
      CA:FALSE 
     Netscape Comment: 
      Puppet Ruby/OpenSSL Internal Certificate 
     X509v3 Key Usage: critical 
      Digital Signature, Key Encipherment 
     X509v3 Subject Key Identifier: 
      88:C4:17:D1:16:FA:0E:F0:E9:AC:00:FC:02:E0:81:53:53:8F:F4:71 
     X509v3 Extended Key Usage: critical 
      TLS Web Server Authentication, TLS Web Client Authentication 
Signature Algorithm: sha1WithRSAEncryption 
    a2:dc:18:b4:7d:56:4a:5b:22:fc:72:7e:37:a9:cd:05:5b:39: 
    63:92:75:0b:1f:05:f7:60:2d:85:ea:79:b5:55:ba:b4:e4:6f: 
    10:00:3b:e2:f0:e2:89:ac:82:5f:2e:c5:45:20:33:75:35:a6: 
    51:3d:fd:a1:7f:38:6f:9c:71:6f:5f:a4:8d:7d:a7:cc:4e:ed: 
    f2:46:9c:a4:b1:4f:83:19:e1:57:83:07:ac:54:ce:84:af:48: 
    7f:ca:52:f2:2b:0f:b1:5a:02:aa:4f:7e:f1:e2:12:77:d2:2f: 
    6a:b5:92:61:69:1e:c6:10:3e:8e:c3:b9:0d:a7:2a:8b:ff:17: 
    bc:81 

最初のステップ(puppetmaster.acme.com)で見つかった名前は、これらの二つのフィールドのいずれかに記載されていない場合はSubject:X509v3 Subject Alternative Name:という名前の2つの分野に焦点を当て、その後、あなたが受け取ったhostname was not match with the server certificate warningを受けるようにしてくださいね。

問題を解決するには、単にpuppet agent --server <hostname>を使用してください。<hostname>は、マスターが使用している証明書に記載されています。

この問題を解決するには、証明書を再発行する必要はありません。

これが役に立ちます。

+1

ありがとうございました:) ubuntuインスタンスの場合、私は人形の代わりにEC2インスタンスのホスト名を使用しました。 –