Added SSL Verify option

This commit is contained in:
Tomaae 2025-04-30 13:35:45 +02:00
parent 955fa33bca
commit 8e68931e57
No known key found for this signature in database
GPG key ID: 60C51A657EEF2D87
6 changed files with 34 additions and 10 deletions

View file

@ -28,12 +28,14 @@ class MikrotikAPI:
password,
port=0,
use_ssl=True,
ssl_verify=True,
login_method=DEFAULT_LOGIN_METHOD,
encoding=DEFAULT_ENCODING,
):
"""Initialize the Mikrotik Client."""
self._host = host
self._use_ssl = use_ssl
self._ssl_verify = ssl_verify
self._port = port
self._username = username
self._password = password
@ -118,15 +120,19 @@ class MikrotikAPI:
"port": self._port,
}
if self._use_ssl:
if self._ssl_wrapper is None:
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
self._ssl_wrapper = ssl_context.wrap_socket
kwargs["ssl_wrapper"] = self._ssl_wrapper
self.lock.acquire()
try:
if self._use_ssl:
if self._ssl_wrapper is None:
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
if self._ssl_verify:
ssl_context.verify_mode = ssl.CERT_REQUIRED
ssl_context.verify_flags &= ~ssl.VERIFY_X509_STRICT
else:
ssl_context.verify_mode = ssl.CERT_NONE
self._ssl_wrapper = ssl_context.wrap_socket
kwargs["ssl_wrapper"] = self._ssl_wrapper
self._connection = librouteros.connect(
self._host, self._username, self._password, **kwargs
)
@ -164,6 +170,9 @@ class MikrotikAPI:
if "ALERT_HANDSHAKE_FAILURE" in error:
self.error = "ssl_handshake_failure"
if "CERTIFICATE_VERIFY_FAILED" in error:
self.error = "ssl_verify_failure"
# ---------------------------
# connected
# ---------------------------