2016-03-03 16 views
5

Tôi có thể thiết lập SSL trong môi giới và khách hàng kafka của tôi và tôi cũng có thể thấy rằng khi chúng tôi sản xuất tin nhắn bằng cổng 9093 là cổng SSL, các tin nhắn được tiêu thụ bởi người tiêu dùng.Cách xác minh SSL đang hoạt động cho Kafka

Điều tôi cố gắng là gửi tin nhắn qua cổng 9093 và tin nhắn được gửi tới người tiêu dùng dưới hình thức nhà sản xuất.

Những gì tôi muốn là có một cách để verity nếu điều này thực sự làm việc, tôi có nghĩa là làm thế nào tôi có thể chứng minh rằng 9092 không phải là SSL và 9093 là SSL và bảo đảm?

Xin cảm ơn trước, Vishesh.

+0

Bạn phải định cấu hình SSL bằng một số khóa và mật khẩu.Nếu cổng SSL của bạn đang chạy 9093 và bạn chỉ có thể tiêu thụ bằng cách cung cấp khóa và mật khẩu đó thì SSL của bạn hoạt động tốt nếu không có sự cố với thiết lập SSL của bạn. – avr

Trả lời

0

Chúng tôi đã thử thiết lập kafka bằng SSL và gặp vấn đề tương tự để kiểm tra chéo nếu hoạt động của nó trên SSL tôi đã xóa mục trình lắng nghe PLAINTEXT và giữ cấu hình chỉ yêu cầu cho SSL và được kiểm tra. Chúng tôi đã có thể gửi và nhận tin nhắn SSL bằng e-mail tại cổng 9093 an toàn.

Trong nhật ký, nó cung cấp cho CẢNH BÁO nhưng đó là để xác thực ứng dụng khách vì vậy đó không phải là vấn đề, sau khi thử nghiệm tôi đã thêm lại mục nhập PLAINTEXT.

Tôi biết đó không phải là cách tốt nhất để kiểm tra nhưng nó hoạt động cho tôi

+0

Vâng tôi cũng đã làm điều tương tự và tôi có thể gửi và nhận tin nhắn trên cổng 9093 nhưng, tôi đã nghĩ đến một số cách khác có thể thông qua wireshark hoặc một cái gì đó có thể được sử dụng để xem mã hóa. Chúng ta có thể? – Vishesh

1

Dưới hai cách có thể xác minh thiết lập SSL.

  1. -Djavax.net.debug=all Thêm bất động sản trong bin/kafka-run-class.sh này tại cùng một vị trí như:

    if [ -z "$KAFKA_JMX_OPTS" ]; then 
        KAFKA_JMX_OPTS=" <**add here**> -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false " 
    fi 
    

    sau đó đuôi người môi giới Kafka log file, bạn sẽ thấy một số thông điệp được mã hóa.

  2. Để xác minh nếu keystore của máy chủ và truststore được thiết lập một cách chính xác, bạn có thể chạy lệnh sau:

    openssl s_client -debug -connect localhost:9093 -tls1 
    

    Lưu ý: TLSv1 nên được liệt kê dưới ssl.enabled.protocols.

    Trong đầu ra của lệnh này bạn sẽ thấy chứng chỉ của máy chủ:

    -----BEGIN CERTIFICATE----- 
    {variable sized random bytes} 
    -----END CERTIFICATE----- 
    subject=/C=US/ST=CA/L=Santa Clara/O=org/OU=org/CN=Joe Smith 
    issuer=/C=US/ST=CA/L=Santa Clara/O=org/OU=org/CN=kafka/[email protected] 
    

    Nếu chứng chỉ không xuất hiện hoặc nếu có bất kỳ thông báo lỗi khác sau đó keystore của bạn không được thiết lập một cách chính xác.

tham khảo:

  1. http://docs.confluent.io/2.0.0/kafka/ssl.html
  2. https://github.com/Symantec/kafka-security-0.9
-1

Khi bạn đề cập security.protocol = SSL, không có cách nào nó có thể sử dụng giao thức khác. Để có thêm bằng chứng, như đã đề cập ở trên, bạn có thể chỉnh sửa kafka-run-class.sh để bật gỡ lỗi tất cả và xác minh bắt tay ssl xảy ra và siêu dữ liệu được gửi qua kênh ssl.

Cảm ơn Akash

+0

Câu hỏi không phải là về "nếu" kafka sử dụng SSL nếu được cấu hình như vậy, đó là về cách xác minh nó thực sự đang thực hiện nó. Vì vậy, câu trả lời của bạn cũng không trả lời câu hỏi, không thêm bất kỳ điều gì mới trái ngược với câu trả lời của supermonk, để lại nhận xét cho các loại đề xuất này thay thế. Ở mức tồi tệ nhất, câu trả lời của bạn là sai, tất nhiên, luôn luôn có một lỗ hổng thực hiện ở bất kỳ đâu trong mã, dẫn đến Kafka không sử dụng SSL mặc dù đã định cấu hình để làm như vậy. – Murmel

Các vấn đề liên quan