2017-09-10 218 views
-1

我有一個簡單的問題,我希望有一個簡單的答案!我可以使用.pem格式的證書頒發機構連接併發布/訂閱我的經紀人。例如,命令:MQTT Mosquitto SSL/TLS無法連接CA.der,但可以使用CA.pem

mosquitto_pub --cafile CA.pem -h www.example.com -p 8883 -t test -u "usr" -p "pw" 

成功。然而,當我使用

openssl x509 -in CA.pem -out CA.der -outform DER 

,並使用CA.der--cafile轉換CA.pemCA.der我得到一個錯誤:

Unable to connect (A TLS error occurred.). 

我相信轉化是正確的,因爲如果我轉換CA.der回用openssl x509CA2.pem到我可以成功連接。我的猜測是我必須在我的mosquitto.conf文件中設置一些內容以允許*.der或類似內容,但在文檔或在線任何地方找不到解決此問題的任何內容。我需要使用.der格式,因爲我在TI CC3200開發板上設置了MQTT客戶端,TI的API需要格式爲.der的所有證書。

的情況下,它需要

我通過我的CertBot域中的CA和證書鏈看起來像這樣一些額外的信息:

depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 
verify return:1 
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 
verify return:1 
depth=0 CN = <www.example.com> 
verify return:1 

mosquitto.conf

allow_anonymous false 
password_file /etc/mosquitto/passwd 

listener 1883 localhost 

listener 8883 
certfile /etc/letsencrypt/live/<www.example.com>/cert.pem 
cafile /etc/letsencrypt/live/<www.example.com>/chain.pem 
keyfile /etc/letsencrypt/live/<www.example.com>/privkey.pem 

回答

0

不,蚊子只支持以PEM格式提供證書,你不能使用DER文件。

沒有什麼可說的,您必須在代理端使用與客戶端相同的證書存儲格式(PEM/DER)。