Я хочу использовать gSOAP для подключения веб-служб HTTPS. Я узнал о том, как использовать gSOAP, — сначала вызвать Soap_ssl_client_context(), пример, который я нашел здесь:
if (soap_ssl_client_context(
&soap, //1
SOAP_SSL_DEFAULT, //2
"client.pem", //3 /* keyfile: required only when client must authenticate to server (see SSL docs on how to obtain this file) */
"password", //4 /* password to read the key file (not used with GNUTLS) */
"cacerts.pem", //5 /* cacert file to store trusted certificates (needed to verify server) */
NULL, //6 /* capath to directory with trusted certificates */
NULL //7 /* if randfile!=NULL: use a file with random data to seed randomness */
))
{
soap_print_fault(&soap, stderr);
exit(1);
}
Но я не могу найти никакой документации о деталях параметров. Мои вопросы:
5-й параметр говорит, что это должен быть «файл cacert». Все образцы используют формат PEM. Поддерживает ли он другие форматы, такие как DER/PKCS? Или только ПЕМ? Я попытался использовать файл DER, он сгенерировал ошибку «Невозможно прочитать файл сертификата CA».
6-й, он говорит, что это должен быть «путь к каталогу», но как это работает? Например. все файлы в этом каталоге ДОЛЖНЫ быть файлами сертификатов? Он будет перебирать все файлы сертификатов в каталоге до тех пор, пока проверка не пройдет успешно?
----------------Обновление ---------------
Что касается вопроса № 1, я проверил исходный код в gSoap и OpenSSL и обнаружил, что он использует функцию PEM (x.509) для загрузки файла сертификата.
Я хочу использовать gSOAP для подключения веб-служб HTTPS. Я узнал о том, как использовать gSOAP, — сначала вызвать Soap_ssl_client_context(), пример, который я нашел здесь:
[code] if (soap_ssl_client_context( &soap, //1 SOAP_SSL_DEFAULT, //2 "client.pem", //3 /* keyfile: required only when client must authenticate to server (see SSL docs on how to obtain this file) */ "password", //4 /* password to read the key file (not used with GNUTLS) */ "cacerts.pem", //5 /* cacert file to store trusted certificates (needed to verify server) */ NULL, //6 /* capath to directory with trusted certificates */ NULL //7 /* if randfile!=NULL: use a file with random data to seed randomness */ )) { soap_print_fault(&soap, stderr); exit(1); } [/code]
Но я не могу найти никакой документации о деталях параметров. Мои вопросы:
[list] [*]5-й параметр говорит, что это должен быть «файл cacert». Все образцы используют формат PEM. Поддерживает ли он другие форматы, такие как DER/PKCS? Или только ПЕМ? Я попытался использовать файл DER, он сгенерировал ошибку «Невозможно прочитать файл сертификата CA». [*]6-й, он говорит, что это должен быть «путь к каталогу», но как это работает? Например. все файлы в этом каталоге ДОЛЖНЫ быть файлами сертификатов? Он будет перебирать все файлы сертификатов в каталоге до тех пор, пока проверка не пройдет успешно? [/list]
----------------Обновление ---------------
Что касается вопроса № 1, я проверил исходный код в gSoap и OpenSSL и обнаружил, что он использует функцию PEM (x.509) для загрузки файла сертификата.