rabbitmq-c Проверка сертификата SSL-однорангового узла не удалась

Я пытаюсь подключиться с помощью SSL, SSL включен на сервере, но я не могу подключиться с помощью клиента rabbitmq-c.

Я взял пример amqps_connect_timeout.c, и это ошибка, которую я получаю в amqp_socket_open_noblock.

SSL peer cert verification failed

При использовании OpenSSL соединение и проверка проходят успешно.

openssl verify -CAfile cacert.pem cert.pem
cert.pem: OK

openssl s_client -connect www.example.com:25586 -CAfile cacert.pem
Verify return code: 0 (ok)

Если я отключу проверку сертификата, соединение будет установлено.

amqp_ssl_socket_set_verify_peer(socket, 0);

Что я делаю неправильно?


person Amir Rossert    schedule 06.04.2017    source источник
comment
Что произойдет, если вы передадите флаг -verify команде openssl s_client?   -  person alanxz    schedule 07.04.2017


Ответы (1)


Я обнаружил, что случилось, в моем CA-файле отсутствовал промежуточный сертификат. Вероятно, openssl s_client игнорирует это по умолчанию.

После исправления файла cacert соединение было установлено из библиотеки rabbitmq-c.

person Amir Rossert    schedule 10.04.2017