Download mosquitto certificate on the fly

pull/12/head
Marius Kriegerowski 2021-01-10 16:07:02 +01:00 zatwierdzone przez Florian Ludwig
rodzic fba07fcc35
commit aeee26f34b
2 zmienionych plików z 12 dodań i 23 usunięć

Wyświetl plik

@ -1,18 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIC8DCCAlmgAwIBAgIJAOD63PlXjJi8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
VQQGEwJHQjEXMBUGA1UECAwOVW5pdGVkIEtpbmdkb20xDjAMBgNVBAcMBURlcmJ5
MRIwEAYDVQQKDAlNb3NxdWl0dG8xCzAJBgNVBAsMAkNBMRYwFAYDVQQDDA1tb3Nx
dWl0dG8ub3JnMR8wHQYJKoZIhvcNAQkBFhByb2dlckBhdGNob28ub3JnMB4XDTEy
MDYyOTIyMTE1OVoXDTIyMDYyNzIyMTE1OVowgZAxCzAJBgNVBAYTAkdCMRcwFQYD
VQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwGA1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1v
c3F1aXR0bzELMAkGA1UECwwCQ0ExFjAUBgNVBAMMDW1vc3F1aXR0by5vcmcxHzAd
BgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hvby5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAMYkLmX7SqOT/jJCZoQ1NWdCrr/pq47m3xxyXcI+FLEmwbE3R9vM
rE6sRbP2S89pfrCt7iuITXPKycpUcIU0mtcT1OqxGBV2lb6RaOT2gC5pxyGaFJ+h
A+GIbdYKO3JprPxSBoRponZJvDGEZuM3N7p3S/lRoi7G5wG5mvUmaE5RAgMBAAGj
UDBOMB0GA1UdDgQWBBTad2QneVztIPQzRRGj6ZHKqJTv5jAfBgNVHSMEGDAWgBTa
d2QneVztIPQzRRGj6ZHKqJTv5jAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA
A4GBAAqw1rK4NlRUCUBLhEFUQasjP7xfFqlVbE2cRy0Rs4o3KS0JwzQVBwG85xge
REyPOFdGdhBY2P1FNRy0MDr6xr+D2ZOwxs63dG1nnAnWZg7qwoLgpZ4fESPD3PkA
1ZgKJc2zbSQ9fCPxt2W3mdVav66c6fsb7els2W2Iz7gERJSX
-----END CERTIFICATE-----

Wyświetl plik

@ -5,6 +5,9 @@ import unittest
import asyncio import asyncio
import os import os
import logging import logging
import urllib.request
import tempfile
import shutil
from hbmqtt.client import MQTTClient, ConnectException from hbmqtt.client import MQTTClient, ConnectException
from hbmqtt.broker import Broker from hbmqtt.broker import Broker
from hbmqtt.mqtt.constants import QOS_0, QOS_1, QOS_2 from hbmqtt.mqtt.constants import QOS_0, QOS_1, QOS_2
@ -43,8 +46,15 @@ class MQTTClientTest(unittest.TestCase):
self.loop = asyncio.new_event_loop() self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop) asyncio.set_event_loop(self.loop)
self.temp_dir = tempfile.mkdtemp(prefix='hbmqtt-test-')
url = "http://test.mosquitto.org/ssl/mosquitto.org.crt"
self.ca_file = os.path.join(self.temp_dir, 'mosquitto.org.crt')
urllib.request.urlretrieve(url, self.ca_file)
log.info("stored mosquitto cert at %s" % self.ca_file)
def tearDown(self): def tearDown(self):
self.loop.close() self.loop.close()
shutil.rmtree(self.temp_dir)
def test_connect_tcp(self): def test_connect_tcp(self):
@asyncio.coroutine @asyncio.coroutine
@ -68,8 +78,7 @@ class MQTTClientTest(unittest.TestCase):
def test_coro(): def test_coro():
try: try:
client = MQTTClient(config={'check_hostname': False}) client = MQTTClient(config={'check_hostname': False})
ca = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mosquitto.org.crt') yield from client.connect('mqtts://test.mosquitto.org/', cafile=self.ca_file)
yield from client.connect('mqtts://test.mosquitto.org/', cafile=ca)
self.assertIsNotNone(client.session) self.assertIsNotNone(client.session)
yield from client.disconnect() yield from client.disconnect()
future.set_result(True) future.set_result(True)
@ -115,7 +124,6 @@ class MQTTClientTest(unittest.TestCase):
self.loop.run_until_complete(test_coro()) self.loop.run_until_complete(test_coro())
if future.exception(): if future.exception():
raise future.exception() raise future.exception()
raise future.exception()
def test_reconnect_ws_retain_username_password(self): def test_reconnect_ws_retain_username_password(self):
@asyncio.coroutine @asyncio.coroutine
@ -148,8 +156,7 @@ class MQTTClientTest(unittest.TestCase):
broker = Broker(broker_config, plugin_namespace="hbmqtt.test.plugins") broker = Broker(broker_config, plugin_namespace="hbmqtt.test.plugins")
yield from broker.start() yield from broker.start()
client = MQTTClient() client = MQTTClient()
ca = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mosquitto.org.crt') yield from client.connect('ws://127.0.0.1:8081/', cafile=self.ca_file)
yield from client.connect('ws://127.0.0.1:8081/', cafile=ca)
self.assertIsNotNone(client.session) self.assertIsNotNone(client.session)
yield from client.disconnect() yield from client.disconnect()
yield from broker.shutdown() yield from broker.shutdown()