Hi,

Interesting ... as far as I can see java throws "Unable to verify OCSP 
Responder's signature" only if responderCert is null in OCSPResponse.
Strange that it happens only time to time.

Could you experiment a bit with OCSP validation explicitly,  using something 
like this:
        Set certSet = new HashSet();
        X509Certificate ocspCert = getCertFromFile(OCSP_SERVER_CERT);
        certSet.add(ocspCert);
        CertStoreParameters storeParams =
                new CollectionCertStoreParameters(certSet);
        CertStore store = CertStore.getInstance("Collection", storeParams);

        // init PKIX parameters
            PKIXParameters params = null;
            params = new PKIXParameters(trustedCertsSet);
            params.addCertStore(store);

        // enable OCSP
        Security.setProperty("ocsp.enable", "true");
        if (ocspServer != null) {
                Security.setProperty("ocsp.responderURL", args[1]);
        Security.setProperty("ocsp.responderCertSubjectName",
                    ocspCert.getSubjectX500Principal().getName());
            }

            // perform validation
            CertPathValidator cpv = CertPathValidator.getInstance("PKIX");
            PKIXCertPathValidatorResult cpv_result  =
                (PKIXCertPathValidatorResult) cpv.validate(cp, params);
            X509Certificate trustedCert = (X509Certificate)
                cpv_result.getTrustAnchor().getTrustedCert();

Perhaps you will be able to reproduce the problem and investigate it in details.

Regards,
Andrei.

> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: Dienstag, 3. Juni 2014 17:07
> To: [email protected]
> Subject: CXF & OCSP Signers
> 
> My apologies if this is the wrong place for this question, as it's not 
> strictly a CXF
> issue, but I'm hoping someone might be able to kick me in the right direction 
> ...
> 
> In my architecture, the STS I am building will need to check certificate
> revocation against one of a set of OCSP responders. Revocation checking works
> well using the standard Java configuration, that is not an issue. What is an 
> issue
> though is that we are using a hierarchical OCSP architecture, with multiple
> OCSP signers, each with their own certificate. So when checking the status of 
> a
> cert against a responder, depending on the health of everything in the system,
> the revocation response could be signed with any one of those OCSP signing
> certs.
> 
> With a single signing cert, I can add that cert to the CXF STS's truststore, 
> and
> revocation checking works perfectly. I had thought that if I added additional
> signing certs to the trust store, Java would just match the cert in the OCSP
> response against any of the certs in the truststore, but instead it looks 
> like Java
> just gets confused and randomly picks one to match against - it may not be
> random, but it's not consistent as I'll sometimes get "Unable to verify OCSP
> Responder's signature" errors kicked out, and sometimes get the proper status.
> 
> Again, my apologies if this question is misdirected. Any help would be greatly
> appreciated.
> 
> Stephen W. Chappell

Reply via email to