Я пытаюсь подключиться к службе SOAP, для которой требуется взаимная аутентификация SSL.Взаимная аутентификация SSL с помощью gSOAP
Мы создали самозаверяющий сертификат и передали его сервисному оператору для проверки наших соединений. Кроме того, они отправили нам копию своего сертификата ssl.
Я смог успешно подключиться к ожидаемому ответу SOAP от службы с помощью openssl s_client и вручную ввести HTTP-запрос, заголовки и контент SOAP. Я использую параметры, подобные следующему, чтобы сделать успешное соединение:
openssl s_client -connect example.com:443 -key my_key.pem -cert my_cert.pem -pass file:my_passphrase
- my_key.pem является именем моего секретного ключа
- my_cert.pem является имя файла самости - присваивается сертификат, переданный оператору службы.
- my_passphrase содержит кодовую фразу для закрытого ключа.
Теперь я пытаюсь получить доступ к той же службе, используя gSOAP и его привязки C. Я выполнил документацию по адресу http://www.cs.fsu.edu/~engelen/soapdoc2.html, чтобы создать привязку из WSDL службы и добавил вызов soap_ssl_client_context()
для настройки SSL-соединения, но у меня возникла проблема.
Я предположил, что я должен использовать путь к my_key.pem в качестве параметра keyfile
, но с помощью GDB, я могу видеть, что это призыв к SSL_CTX_use_certificate_chain_file()
, который терпит неудачу. gSOAP передает параметр keyfile
в качестве аргумента file
для этого вызова.
Любая помощь очень ценится.