0

Ubuntu 11.10 EC2インスタンス(ami-a562a9cc)を使用してpuppetmasterおよびpuppetクライアントを設定しようとしています。自動証明書署名を有効にしました。しかし、私がpuppetクライアントからコマンドを発行するときはいつでも:

#puppet agent --server puppet --waitforcert 60 --test

証明書は署名されますが、エラーがスローされ、カタログファイルは実行されません。

エラーメッセージ :

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

マニフェストファイルをPup​​petMasterに適用することは問題なく機能しますが、puppetclientsでは機能しません。

私はすでにAmazonLinuxとCentosでpuppet環境をセットアップしましたが、それらでうまくいきました。しかし、私はUbuntu11.10でこれらの問題に直面しています

ありがとうSanketDangi

4

1 に答える 1

6

Puppetは、標準のx.509SSL証明書を使用して通信します。これらはHTTPSで使用されるものと同じ証明書であるため、同じメンタルモデルを使用して考えることができます。

この問題は、ほとんどの場合、パペットエージェントがサブジェクトにリストされていない名前またはパペットマスターの証明書のx.509代替名フィールドを使用している状況が原因で発生します。

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

この質問に答えるには、エージェントがマスターに連絡するために使用している名前を特定する必要があります。あなたの例では、--server puppetオプションを指定したので、puppetが使用されている名前です。puppet agent --configprint server自分でセットアップしていないPuppetデプロイメントを使用している場合は、次のようなコマンドを使用して、構成された名前を見つけることができます。

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

エージェントが「puppetmaster.acme.com」という名前を使用してマスターに連絡していることがわかったので、次の質問はマスターのSSL証明書の「Ispuppetmaster.acme.com」です。

この質問に答えるには、Puppet Masterに移動し、使用されているx.509SSL証明書を調べます。これは、次のコマンドで実行できます。このコマンドは、--configprintオプションを使用して、パペットマスターによって使用されている証明書名を検索します。これは通常、単なるホスト名です。このpuppet cert printコマンドは、人間が読める形式で証明書を出力しopenssl x509 -text -noout -in ...ます。これは、既に使い慣れているコマンドと同じです。

root@pe-centos6:~# 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

名前の付いた2つのフィールドに注目します 。最初のステップ()で見つかった名前Subject:がこれらの2つのフィールドのいずれにもリストされていない場合は、受け取ったものを確実に受け取ることができます。X509v3 Subject Alternative Name:puppetmaster.acme.comhostname was not match with the server certificate warning

この問題を解決するには、マスターが使用している証明書にリストされているpuppet agent --server <hostname>場所を使用するだけです。<hostname>

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

お役に立てれば。

于 2012-01-12T21:13:19.557 に答える