보안 SSL 연결을 사용하여 모스 퀴토 브로커에 연결하려고합니다. 는이를 위해, 나는 다음을 수행
tutorial다른 컴퓨터에서 모스키토 브로커에 연결할 때 SSL 오류가 발생했습니다.
mosquitto 구성 파일은 다음과 같습니다
tls_version tlsv1.2
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
listener 1883
listener 8883
cafile /etc/mosquitto/certs2/ca.crt
certfile /etc/mosquitto/certs2/server.crt
keyfile /etc/mosquitto/certs2/server.key
나는만큼 클라이언트이기 때문에이
script
와 CA 파일 및 서버 인증서를 생성 브로커와 같은 컴퓨터에서 ca 파일을 사용하여 포트 8883에 연결하는 데 아무런 문제가 없습니다. 나는 다음과 같은 오류가 다른 컴퓨터에 클라이언트에서 연결하려고 할 때
mosquitto_sub -h localhost --cafile /etc/mosquitto/certs2/ca.crt -t "test" -p 8883 -v
는하지만 : 나는 mosquitto_pub/하위의 옵션 불안을 사용할 때
1484748728: OpenSSL Error: error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown
은 또한 그것은 잘 작동합니다.
--insecure
When using certificate based encryption, this option disables verification of the server hostname in the server certificate. This can be useful when testing initial server configurations but makes it possible for a malicious third party to impersonate your server through DNS spoofing, for example. Use this option in testing only. If you need to resort to using this option in a production environment, your setup is at fault and there is no point using encryption.
그래서, 내 서버 인증서에 그 어쩌면에 commonName을 생각하는 것은 좋지 않다,하지만 난 확인하고 내가 접속을 설정하는 데 사용하는 호스트 이름 coresponds.
두 시스템 모두 OpenSSL 1.0.2g가 설치되어 있습니다.
, 내가 ssldump를 실행하려고 어떤 일에 대한 정확한 정보를 가지고하기 위해,하지만 난 정말
2 1 0.0292 (0.0292) C>S Handshake
ClientHello
Version 3.3
cipher suites
Unknown value 0xc030
Unknown value 0xc02c
Unknown value 0xc028
Unknown value 0xc024
Unknown value 0xc014
Unknown value 0xc00a
Unknown value 0xa5
Unknown value 0xa3
Unknown value 0xa1
Unknown value 0x9f
Unknown value 0x6b
Unknown value 0x6a
Unknown value 0x69
Unknown value 0x68
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DH_RSA_WITH_AES_256_CBC_SHA
TLS_DH_DSS_WITH_AES_256_CBC_SHA
Unknown value 0x88
Unknown value 0x87
Unknown value 0x86
Unknown value 0x85
Unknown value 0xc032
Unknown value 0xc02e
Unknown value 0xc02a
Unknown value 0xc026
Unknown value 0xc00f
Unknown value 0xc005
Unknown value 0x9d
Unknown value 0x3d
TLS_RSA_WITH_AES_256_CBC_SHA
Unknown value 0x84
Unknown value 0xc02f
Unknown value 0xc02b
Unknown value 0xc027
Unknown value 0xc023
Unknown value 0xc013
Unknown value 0xc009
Unknown value 0xa4
Unknown value 0xa2
Unknown value 0xa0
Unknown value 0x9e
TLS_DHE_DSS_WITH_NULL_SHA
Unknown value 0x40
Unknown value 0x3f
Unknown value 0x3e
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DH_RSA_WITH_AES_128_CBC_SHA
TLS_DH_DSS_WITH_AES_128_CBC_SHA
Unknown value 0x9a
Unknown value 0x99
Unknown value 0x98
Unknown value 0x97
Unknown value 0x45
Unknown value 0x44
Unknown value 0x43
Unknown value 0x42
Unknown value 0xc031
Unknown value 0xc02d
Unknown value 0xc029
Unknown value 0xc025
Unknown value 0xc00e
Unknown value 0xc004
Unknown value 0x9c
Unknown value 0x3c
TLS_RSA_WITH_AES_128_CBC_SHA
Unknown value 0x96
Unknown value 0x41
Unknown value 0xc011
Unknown value 0xc007
Unknown value 0xc00c
Unknown value 0xc002
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5
Unknown value 0xc012
Unknown value 0xc008
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
Unknown value 0xc00d
Unknown value 0xc003
TLS_RSA_WITH_3DES_EDE_CBC_SHA
Unknown value 0xff
compression methods
NULL
2 2 0.0602 (0.0309) S>C Handshake
ServerHello
Version 3.3
session_id[0]=
cipherSuite Unknown value 0xc030
compressionMethod NULL
2 3 0.0614 (0.0012) S>C Handshake
Certificate
2 4 0.0614 (0.0000) S>C Handshake
ServerKeyExchange
2 5 0.0614 (0.0000) S>C Handshake
ServerHelloDone
2 6 0.0629 (0.0014) C>S Alert
level fatal
value certificate_unknown
2 0.0644 (0.0015) C>S TCP RST
그것은 암호 군에 불과 unknownvalue 있다는 것을 나에게 이상한 것 같다 해석 해야할지 모르겠다 서버 안녕하세요,하지만 ssl/tls 나를 위해 완전히 새로운 주제입니다 ...
당신은이 문제를 만들 수있는 방법이나 디버깅하는 방법에 대한 아이디어가 있습니까?
나에게 몇 가지 제안을 해주시면 매우 기쁩니다.
아니요 다른 컴퓨터에서 "mosquitto_sub -h localhost"를 사용하지 않았으므로 localhost를 연결하려는 서버의 호스트 이름으로 바꿨습니다. 나는 또한 내가 사용하는 ca 파일이 좋은 것임을 확신한다. –