【发布时间】:2012-03-13 19:57:02
【问题描述】:
我正在使用支持 SSL 的 gSOAP 开发 Web 服务。只要我复制(就是这样!)作为 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 中。 就是这样,非常感谢大家会很高兴回答。
【问题讨论】: