SSL対応のgSOAPを使用してWebサービスを開発しています。それはgSOAPのドキュメントとして提供されたコードをコピーする(それだけです!)限り、正常に動作します。いくつかの機能を追加しようとすると、私は多くの困難にぶつかります!私はOpenSSLライブラリについてよく知らないので、私はあなたの助けを求めるためにここにいます。 クライアントから送信された証明書を確認するためにCRLリストを追加する必要があります。どうしたらいいですか?また、私はこの1つでsoap.fsslverifyが指し示す機能を変更:gSoap + SSL:CRL&証明書名のチェック
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に特定の証明書が存在するかどうかを確認する方法はわかりません。 これはすべての人におかげさまで、答えがよかったです。