đã có mosquitto 1.x chạy tốt trên Debian 10 (có SSL). Cùng với việc nâng cấp lên Debian 11 là mosquitto 2.0.11-1.
Tôi đã phải thực hiện một vài điều chỉnh tệp cấu hình để bắt đầu. Đã đọc qua https://mosquitto.org/documentation/migrating-to-2-0/
Để thử nghiệm, tôi hiện đang khởi động daemon bằng lệnh này một cách tương tác:
/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf -v
Nhưng bây giờ khách hàng không thể kết nối nữa, bất kể loại khách hàng của họ là gì (tôi có rất nhiều loại khách hàng). Đối với mọi nỗ lực kết nối máy khách, tôi nhận được một mục nhật ký như thế này:
1629544574: Kết nối mới từ x.x.x.x:54278 trên cổng 8883.
1629544574: Máy khách <không xác định> bị ngắt kết nối do lỗi giao thức.
Đây là tập tin cấu hình chính:
# Đặt cấu hình cục bộ của bạn vào /etc/mosquitto/conf.d/
#
# Mô tả đầy đủ về tệp cấu hình có tại
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto/mosquitto.pid
kiên trì đúng
kiên trì_location /var/lib/mosquitto/
#Trơn
#nghe 1883
#SSL
người nghe 8883
#keepalive_interval 600
# Không yêu cầu xác thực
allow_anonymous đúng
log_type tất cả
tệp log_dest /var/log/mosquitto/mosquitto.log
bao gồm_dir /etc/mosquitto/conf.d
Và đây là SSL (tệp duy nhất trong conf.d):
cafile /etc/mosquitto/certs/ca.cer
certfile /etc/mosquitto/certs/mqtt.cer
tệp khóa /etc/mosquitto/certs/mqtt.key
dhparamfile /etc/mosquitto/certs/dhparam.pem
#tls_version tlsv1.2
Tất cả các tệp liên quan đến chứng chỉ đều tồn tại:
root@linux06:/etc/mosquitto# ls -l certs/
tổng số 28
-rw-r--r-- 1 mosquitto mosquitto 3915 ngày 28 tháng 4 02:36 ca.cer
-rw-r----- 1 mosquitto mosquitto 424 ngày 21 tháng 8 12:45 dhparam.pem
-rwxr-xr-- 1 mosquitto mosquitto 3546 ngày 28 tháng 4 02:36 mqtt.cer
-rwxr-x--- 1 mosquitto mosquitto 3243 ngày 28 tháng 4 02:36 mqtt.key
-rwxr-x--- 1 mosquitto mosquitto 7528 ngày 28 tháng 4 02:36 mqtt.p7b
-rw-r--r-- 1 mosquitto mosquitto 130 ngày 28 tháng 4 02:36 README
Thật không may, việc chấp nhận tất cả các chứng chỉ trong ứng dụng khách không giúp được gì. Bằng cách đó, ít nhất tôi đã có một cái gì đó để bắt đầu.
Khi tôi di chuyển tệp cấu hình ssl đi, do đó tắt SSL, khách hàng có thể kết nối tốt khi thử kết nối đơn giản.
Điều tôi thấy hơi kỳ lạ là điều này. Điều này không nên, phải không?
root@linux06:~# openssl s_client -connect 127.0.0.1:8883 -showcerts
ĐÃ KẾT NỐI(00000003)
viết:errno=104
---
không có chứng chỉ ngang hàng
---
Không có tên CA chứng chỉ ứng dụng khách nào được gửi
---
Bắt tay SSL đã đọc 0 byte và ghi 283 byte
Xác minh: OK
---
Mới, (NONE), Mật mã là (NONE)
Đàm phán lại an toàn KHÔNG được hỗ trợ
Nén: KHÔNG CÓ
Mở rộng: KHÔNG CÓ
Không có ALPN nào được thương lượng
Dữ liệu ban đầu không được gửi
Xác minh mã trả về: 0 (ok)
---
root@linux06:~#
Chứng chỉ vẫn ổn (mặc dù nó sẽ hết hạn sớm; một số nội dung bị che khuất):
root@linux06:~# openssl x509 -text -in /etc/mosquitto/certs/mqtt.cer
Giấy chứng nhận:
Dữ liệu:
Phiên bản: 3 (0x2)
Số seri:
18:00:00:02:07:9a:37:38:09:44:97:a3:6c:00:01:00:00:02:07
Thuật toán chữ ký: sha512WithRSAEencryption
Tổ chức phát hành: DC = tổ chức, DC = đeo mặt nạ, DC = đeo mặt nạ, CN = đeo mặt nạ
hiệu lực
Không trước: 26 tháng 8 13:20:32 2019 GMT
Không phải sau : 25 tháng 8 13:20:32 2021 GMT
Chủ đề: C = DE, ST = NA, L = hư không, OU = đeo mặt nạ
Thông tin khóa công khai chủ đề:
Thuật toán khóa công khai: rsaEncryption
Khóa công khai RSA: (4096 bit)
Mô đun:
00:c3:55:4a:ec:47:ba:65:ee:1c:b4:ac:72:73:0d:
4b:c3:ae:94:8c:35:d8:1c:99:7e:0e:d9:12:3b:cf:
c9:6f:2a:f1:c0:e6:10:3e:52:df:a7:5a:36:73:6a:
Tôi đã tới giới hạn của mình rồi. Có ai có một ý tưởng tại sao điều này không thành công? Tôi đã xem qua cấu hình ví dụ, quyền của hệ thống tệp và các trang web. Nhưng tôi dường như không thể tìm ra lý do cho sự thất bại này.