我正在使用在RPI上運行的MQTT python客戶端。我不是來自Web相關領域的人,但是我需要實現SSL安全性,同時我將一些數據從我的Python客戶端發送到開源MQTT代理。將MQTT數據封裝到SSL證書中並將其發送到MQTT代理
我已經在Python中找到certain package來打開套接字來打包SSL安全。我在Python中有點新鮮感。所以我想了解它是如何工作的,以及如果我們想要實現SSL安全,我們需要做什麼。 This question解釋了很多有關SSl的事情,它是如何發生的。但是如果我需要用python實現它,以及如何在我的RPI上本地安裝SSL證書(我想要一些短的開源SSL證書,因爲我現在正在以本地項目的形式執行此操作)。
I使用下面的python代碼打開SSL套接字,然後通過443端口連接到www.google.com。
import socket
import ssl
s_ = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = ssl.wrap_socket(s_, ca_certs='/usr/local/lib/python2.7/dist-packages/requests/cacert.pem',cert_reqs=ssl.CERT_REQUIRED)
s.connect(('www.google.com', 443))
s.write("""GET/HTTP/1.1\r
Host: www.google.com\r\n\r\n""")
d=s.read()
print(d)
s.close()
,並讓我的控制檯上輸出
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: https://www.google.co.in/?gfe_rd=cr&ei=PkW8U8SsPOqK8Qfwt4DYAw
Content-Length: 262
Date: Tue, 08 Jul 2014 19:23:42 GMT
Server: GFE/2.0
Alternate-Protocol: 443:quic
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="https://www.google.co.in/?gfe_rd=cr&ei=PkW8U8SsPOqK8Qfwt4DYAw">here</A>.
</BODY></HTML>
但我仍然要問或理解(我從可用資源研究)是誰曾經被打開SSL插座需要有一個SSL證書,我們正在做我們的SSL證書發送到服務器或由openssl庫完成的部分。另外我想確認openssl提供的openssl正在使用併發送到服務器的SSL證書?
This link幫助瞭解SSL安全的基礎知識。