Validación OCSP

Buenas tardes, hace alrededor de un mes me asignarón un desarrollo donde una validación para el sistema es, uan validación de certificados para conocer el estado del mismo; pero cada vez que realizo una consulta al servidor de OCSP me regresa siempre un numero 3 que interpreto según la documentación que he leido, como intente despues. Quisiera saber si me pudiesen ayudar por que me regresa este numero, no estoy muy seguro si es a causa del código (que adjunto debajo) que recibo esta respuesta.
Saludos.

import java.math.BigInteger;
import java.security.*;
import java.security.cert.*;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.net.ssl.HttpsURLConnection;

import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.ocsp.OCSPObjectIdentifiers;
import org.bouncycastle.asn1.x509.X509Extension;
import org.bouncycastle.asn1.x509.X509Extensions;
import org.bouncycastle.ocsp.CertificateID;
import org.bouncycastle.ocsp.OCSPException;
import org.bouncycastle.ocsp.OCSPReq;
import org.bouncycastle.ocsp.OCSPReqGenerator;
import org.bouncycastle.ocsp.OCSPResp;

public class OCSPClient {

public static OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber) throws OCSPException {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

CertificateID id = new CertificateID(CertificateID.HASH_SHA1, issuerCert, serialNumber);

OCSPReqGenerator gen = new OCSPReqGenerator();

gen.addRequest(id);

// create details for nonce extension
BigInteger nonce = BigInteger.valueOf(System.currentTimeMillis());
Vector oids = new Vector();
Vector values = new Vector();

oids.add(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);
values.add(new X509Extension(false, new DEROctetString(nonce.toByteArray())));

gen.setRequestExtensions(new X509Extensions(oids, values));

return gen.generate();
}

public static void main(String[] args) throws Exception {

InputStream inStream = new FileInputStream("C:/camc650531j76.cer");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate interCert = (X509Certificate) cf.generateCertificate(inStream);
inStream.close();

InputStream inStreamRoot = new FileInputStream("C:/AC2_SAT.cer");
X509Certificate rootCert = (X509Certificate) cf.generateCertificate(inStreamRoot);
inStreamRoot.close();

OCSPReq request = generateOCSPRequest(rootCert, interCert.getSerialNumber());

byte[] array = request.getEncoded();

String serviceAddr = "https://cfdit.sat.gob.mx/fielqro/edofiel/";
String hostAddr = "";
if (serviceAddr != null) {
hostAddr = serviceAddr;
try {
if (serviceAddr.startsWith("http")) {
HttpURLConnection con = null;
URL url = new URL((String) serviceAddr);
con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Content-Type", "application/ocsp-request");
con.setRequestProperty("Accept", "application/ocsp-response");
con.setDoOutput(true);
System.out.println(con.getContent());
OutputStream out = con.getOutputStream();
DataOutputStream dataOut = new DataOutputStream(new BufferedOutputStream(out));

dataOut.write(array);

dataOut.flush();
dataOut.close();

if (con.getResponseCode() / 100 != 2) {
throw new Exception("***Error***");
}

InputStream in = (InputStream) con.getContent();
OCSPResp ocspResponse = new OCSPResp(in);

System.out.println(ocspResponse.getStatus());
System.out.println("...");
} else {
}
} catch (Exception e) {
System.out.println(e);
}
}
}
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

getContent

Estás pidiendo getContent de la conexión, antes de enviar datos. No te arroja un error eso? Porque se supone que no debes invocar getContent antes de enviar los datos. Por cierto tal vez haga falta pasarle a la conexión que use el método POST. Y dado que estás escribiendo un arreglo de bytes, te sobra envolver el outputStream de la conexión con el DataOutputStream, podrías escribir directamente al outputStream de la conexión (o si quieres, al BufferedOutputStream con el que envuelves el outputStream de la conexión).