簡體   English   中英

從另一台計算機連接到mosquitto代理時出現SSL錯誤

[英]SSL error when connecting to a mosquitto broker from another machine

我嘗試使用安全的ssl連接連接到mosquitto代理。 為此,我遵循以下內容
教程

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

我使用此腳本生成ca文件和服務器證書

只要客戶端與代理在同一台機器上,我就不會在使用ca文件在端口8883上連接時遇到任何問題。

mosquitto_sub -h localhost --cafile /etc/mosquitto/certs2/ca.crt  -t "test"  -p 8883 -v 

但是當我嘗試從另一台機器上的客戶端連接時,我收到以下錯誤:

1484748728: OpenSSL Error: error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown

此外,當我使用mosquitto_pub / sub選項不安全時,它運行良好。

--insecure

使用基於證書的加密時,此選項會禁用服務器證書中服務器主機名的驗證。 這在測試初始服務器配置時非常有用,但可以使惡意第三方通過DNS欺騙模擬您的服務器。 僅在測試中使用此選項。 如果您需要在生產環境中使用此選項,則您的設置有問題,使用加密沒有意義。

所以,我在想我的服務器證書上的commonName可能不好,但是我檢查它並且它對應於我用來建立連接的主機名。

在兩台機器上都安裝了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

我覺得奇怪的是服務器問候的cipherSuite上只有unknownvalue,但ssl / tls對我來說是一個全新的話題......

您對可能產生此問題的方法或如何調試它有所了解嗎?

如果你能給我一些建議,我將非常高興。

在iot.stackexchange.com上可以更好地詢問這個問題。

但是當我嘗試從另一台機器上的客戶端連接時,我收到以下錯誤:

如果你在另一台機器上運行mosquitto_sub -h localhost ,那么你就不再連接到遠程機器了。 如果您已在遠程主機上正確修改了主機名,那么您是否還復制了正確的CA文件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM