Tên máy chủ con rối không khớp với chứng chỉ máy chủ


10

Tôi đang cố gắng thiết lập Ubuntu VM với con rối được cài đặt để tôi có thể kiểm tra cục bộ thiết lập sản xuất của chúng tôi. Tôi gặp khó khăn khi bắt rối và nói chuyện với nhau. Hãy để tôi đưa bạn qua các bước của tôi. (Máy chủ hostnamelà FQDN có định dạng "web1.xxx.xxx.net").

Vì vậy, trước tiên, tôi xóa tất cả các tệp pem (ngoại trừ các viên CA tất nhiên) khỏi /etc/puppet/sslthư mục để tôi có thể bắt đầu mới. puppetca --listtrả về không có kết quả.

Sau đó, tôi chạy puppetd --testđể tạo CSR cho người điều khiển rối. puppetca --listhiện bao gồm tên máy chủ của tôi ("web1.xxx.xxx.net").

Rồi tôi chạy puppetca --sign web1.xxx.xxx.net. Bây giờ puppetca --listlại trống rỗng - mọi thứ hoạt động tốt cho đến nay.

Cuối cùng tôi puppetd --testlại chạy . Tôi nhận được đầu ra sau đây:

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

Liệt kê nội dung của /etc/puppet/sslthư mục hiển thị các tệp PEM với tên máy chủ chính xác, khớp với tên của tôi hostname. Bất cứ ai có bất kỳ ý tưởng về cách tấn công vấn đề này?

Câu trả lời:


9

Lỗi là do máy khách mặc định kết nối với tên máy chủ 'con rối' nhưng chứng chỉ được trình bày không có 'con rối' với tư cách là chủ đề của nó hoặc là thuộc tính SubjectAltName.

Để sửa nó, bạn có thể (chọn một):

  1. thay vì khởi tạo chứng chỉ con rối của bạn bằng cách chạy puppetd, hãy khởi tạo nó bằng cách chạy puppetmasterd- điều này sẽ khiến tên đối tượng chứng nhận bao gồm "con rối".

  2. thay vì để mọi thứ có cơ hội bạn có thể sử dụng puppetca --generate --certdnsnames puppet:puppet.mydomain.com web1.xx.xx.xx.net- tùy chọn certdnsnames chỉ định danh sách Tiêu đề chủ đề sẽ được bao gồm trong chứng chỉ; nó nên có một danh sách được phân tách bằng dấu hai chấm của bất kỳ tên nào mà máy khách sẽ sử dụng để liên hệ với máy chủ.

  3. thay vì chỉ chạy puppetd --testtrên máy khách, hãy chạy puppetd --test --server=web1.xx.xx.xx.netđể tên máy chủ mà máy khách kết nối đến là tên thực sự tồn tại trong chứng chỉ do máy chủ xuất trình.

Kiểm tra mục blog tuyệt vời của masterzen để xử lý sự cố thêm: Puppet SSL Giải thích


3

Bạn đã kiểm tra tệp nhật ký con rối? Tôi đã tìm thấy cùng một vấn đề và thấy rằng máy chủ ghi thông tin chứng chỉ:

[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

Chủ đề trường cho thấy CN là "ubfox.localdomain", vì vậy tôi đã thực hiện con rối bằng cách thực hiện:

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

Hi vọng điêu nay co ich :-)


2

Ngoài những gì Pau đã trả lời, tôi chỉ muốn nhấn mạnh rằng bạn có thể kiểm tra chứng chỉ múa rối bằng cách sử dụng:

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

Sau đó, đảm bảo rằng bạn sử dụng cùng tên máy chủ khi từ máy khách:

puppetd --server <hostname_of_puppet_master> <etc>

0

Cả hai máy chủ có thể giải quyết lẫn nhau? Tôi đoán là vì bạn đang VMing nên bạn có thể thiếu độ phân giải tên. Nếu bạn không sử dụng DNS để cho phép các máy chủ giải quyết lẫn nhau, bạn cần thêm các mục vào /etc/hoststệp của mình trên cả hai máy chủ.

Con rối yêu cầu tên máy chủ để giải quyết các IP chính xác, nếu không có điều này, bạn sẽ nhận được lỗi bạn đã đề cập. Bạn có thể cần phải tạo lại chứng chỉ sau khi làm điều này. Cả hai máy sẽ có thể ping từng tên máy chủ.

Một điều cần cẩn thận với máy ảo là bạn đồng bộ hóa thời gian trên các máy chủ. Nếu bạn không có khả năng chứng chỉ sẽ không hợp lệ.


Ah, tôi nên đã chỉ định. Puppet và Puppetmaster đều đang chạy trên cùng một máy chủ; VM của tôi. Và vâng, tôi có thể ping máy tính từ chính nó bằng FQDN.
RISCfuture

Xin lỗi Joshua đó là không chính xác. con rối không thực hiện xác nhận DNS-> IP so với chứng chỉ được trình bày. Nó thực hiện xác nhận tên máy chủ để xác thực tên, đó là nguyên nhân gây ra lỗi.
eric sorenson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.