Я разрабатываю веб-сервис, используя gSOAP с поддержкой SSL.Он работает нормально, пока я КОПИРУЮ (и все!) Код, предоставленный в виде документации gSOAP.Пытаясь добавить какую-то особенность, я сталкиваюсь с множеством трудностей!Я не очень хорошо разбираюсь в библиотеках OpenSSL, поэтому я здесь, чтобы попросить вас о помощи.Я должен добавить список CRL, чтобы проверить сертификат, отправленный клиентом.Как мне это сделать?Более того, я изменил функцию, указанную soap.fsslverify, следующим образом:
int servlet_fsslverify(int ok, X509_STORE_CTX *store)
{
ok = 1;
char buf[1024];
X509 *cert = X509_STORE_CTX_get_current_cert(store);
fprintf(stderr, "SSL verify error or warning with certificate at depth %d: %s\n",
X509_STORE_CTX_get_error_depth(store),
X509_verify_cert_error_string(X509_STORE_CTX_get_error(store)));
X509_NAME_oneline(X509_get_issuer_name(cert), buf, sizeof(buf));
fprintf(stderr, "certificate issuer %s\n", buf);
X509_NAME_oneline(X509_get_subject_name(cert), buf, sizeof(buf));
fprintf(stderr, "certificate subject %s\n", buf);
/* Note: return 1 to continue, but unsafe progress will be terminated by OpenSSL */
return ok;
}
Она вызывается каждый раз, когда клиент пытается аутентифицироваться.Как вы можете видеть, я могу проверить поля в сертификате клиента, но я действительно не знаю, как проверить, присутствует ли конкретный сертификат в CRL или нет.Вот и все, большое спасибо всем, было бы так приятно ответить.