Кто-то настроил rabbitmqadmin в Windows, и теперь, когда мы запускаем задание, которое создаст очереди, сценарий не выполняется из-за проблемы ssl
11:27:12 Traceback (most recent call last):
11:27:12 File "D:\jenkins\home\workspace\RabbitMQ-BUILD\target\classes\rabbitmqadmin", line 535, in http
11:27:12 conn.request(method, path, body, headers)
11:27:12 File "http\client.py", line 1239, in request
11:27:12 File "http\client.py", line 1285, in _send_request
11:27:12 File "http\client.py", line 1234, in endheaders
11:27:12 File "http\client.py", line 1026, in _send_output
11:27:12 File "http\client.py", line 964, in send
11:27:12 File "http\client.py", line 1400, in connect
11:27:12 File "ssl.py", line 401, in wrap_socket
11:27:12 File "ssl.py", line 808, in __init__
11:27:12 File "ssl.py", line 1061, in do_handshake
11:27:12 File "ssl.py", line 683, in do_handshake
11:27:12 ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748)
11:27:12
11:27:12 During handling of the above exception, another exception occurred:
11:27:12
11:27:12 Traceback (most recent call last):
11:27:12 File "D:\jenkins\home\workspace\RabbitMQ-BUILD\target\classes\rabbitmqadmin", line 1066, in <module>
11:27:12 main()
11:27:12 File "D:\jenkins\home\workspace\RabbitMQ-BUILD\target\classes\rabbitmqadmin", line 447, in main
11:27:12 method()
11:27:12 File "D:\jenkins\home\workspace\RabbitMQ-BUILD\target\classes\rabbitmqadmin", line 638, in invoke_list
11:27:12 format_list(self.get(uri), cols, obj_info, self.options)
11:27:12 File "D:\jenkins\home\workspace\RabbitMQ-BUILD\target\classes\rabbitmqadmin", line 477, in get
11:27:12 return self.http("GET", "%s/api%s" % (self.options.path_prefix, path), "")
11:27:12 File "D:\jenkins\home\workspace\RabbitMQ-BUILD\target\classes\rabbitmqadmin", line 537, in http
11:27:12 traceback.print_exc(e)
11:27:12 File "traceback.py", line 159, in print_exc
11:27:12 File "traceback.py", line 100, in print_exception
11:27:12 File "traceback.py", line 497, in __init__
11:27:12 File "traceback.py", line 332, in extract
11:27:12 TypeError: '>=' not supported between instances of 'ssl.SSLError' and 'int'
Когда я проверяю конфигурацию ssl там, я вижу некоторый путь (openssl_cafile, openssl_capath), который, по-видимому, не существует в Windows
>>> print(ssl.get_default_verify_paths())
DefaultVerifyPaths(cafile=None, capath=None, openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/usr/local/ssl/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/usr/local/ssl/certs')
К сожалению, я новичок в python и rabbitmq, и поскольку я не настроил все это, я застрял. Я пытаюсь понять, как исправить проблемы, чтобы ошибка ssl больше не возникала
- что неправильно настроено
- где вы настраиваете путь сертификации в python для Windows
Вот что я знаю:
Мы используем самозаверяющие сертификаты (должны).
Конфигурация, связанная с ssl в rabbitmq.config, выглядит следующим образом
{ssl_options, [{cacertfile, "D:\\RabbitMQ\\rabbitmqca.pem"},
{certfile, "D:\\RabbitMQ\\myhost_listener.pem"},
{keyfile, "D:\\RabbitMQ\\myhost_listener_key.pem"},
{verify, verify_peer},
{fail_if_no_peer_cert, false}]},