Điểm:1

Nginx không thể chấp nhận bắt tay TLS khi khách hàng không gửi tiện ích mở rộng TLS

lá cờ in

Nginx được định cấu hình làm bộ cân bằng tải và có chứng chỉ máy chủ được cài đặt để chấm dứt quá trình bắt tay TLS cho các kết nối MQTT. Nó hoạt động khi các phần mở rộng TLS được bao gồm trong clientHello trong quá trình bắt tay nhưng có những ứng dụng khách khác đang chạy mã cũ không gửi bất kỳ phần mở rộng TLS nào trong clientHello. Trong trường hợp đó, tôi thấy Nginx sẽ đưa ra lỗi như trong

SSL_do_handshake() không thành công (SSL: error:14201044:SSL routines:tls_choose_sigalg:internal error) trong khi SSL bắt tay, máy khách: x.x.x.107, máy chủ: 0.0.0.0:8883

Đây là chụp Wireshark

clientXin chào mà không cần tiện ích mở rộng

Đối với tôi, có vẻ như Nginx đang mong đợi ít nhất là phần mở rộng chữ ký alorightms. Câu hỏi của tôi là liệu Nginx có thể được cấu hình để chấp nhận bắt tay TLS khi máy khách không sử dụng tiện ích mở rộng không?

Cấu hình luồng Nginx ở đây (chỉ hiển thị TLS liên quan):

nhà môi giới ngược dòng{
    máy chủ 127.0.0.1:18831;
    máy chủ 127.0.0.1:18832;
    máy chủ 127.0.0.1:18833;

    vùng tcp_mem 64k;
    hàm băm $mqtt_client_id nhất quán; 
}
người phục vụ {
    nghe 8883 ssl;  
    kích_thước_đệm_đọc_trước 1k;

    ssl_certificate /etc/nginx/certs/server.pem;
    ssl_certificate_key /etc/nginx/certs/server.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers CAO:!aNULL:!MD5;
    ssl_session_cache được chia sẻ:SSL:128m;  
    bật ssl_session_tickets;
    ssl_session_timeout 8h;
    tắt ssl_verify_client;
    tắt ssl_prefer_server_ciphers;    
 
    nhà môi giới proxy_pass;
    proxy_connect_timeout 5s;
    access_log /var/log/nginx/mqtt_access.log mqtt;
    error_log /var/log/nginx/mqtt_error.log gỡ lỗi;  
}

Đây là quá trình chụp Wireshark khi khách hàng gửi tiện ích mở rộng trong clientHello:

clientXin chào bao gồm các tiện ích mở rộng

Z Wang avatar
lá cờ in
Hóa ra mức bảo mật mặc định của openssl cấm các khóa RSA ít hơn 2048 bit trong mật mã. Sau khi điều chỉnh mức độ bảo mật, vấn đề đã được giải quyết.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.