Root certificates

NCA (RSA_OLD) pki_rsa
NCA (GOST_OLD) pki_gost
RCA (RSA) root_rsa
RCA (GOST) root_gost
NCA (RSA) nca_rsa
NCA (GOST) nca_gost

 

 

certificate revocation list

NCA (RSA_OLD) CRL Delta CRL
NCA (GOST_OLD) CRL Delta CRL
NCA (RSA) CRL Delta CRL
NCA (GOST) CRL Delta CRL

You want to reissue the EDS? Jump to Site >>

Welcome, Guest
Username Password: Remember me

OSCP корневого сертификата
(1 viewing) (1) Guest
  • Page:
  • 1

TOPIC: OSCP корневого сертификата

OSCP корневого сертификата 4 days, 2 hours ago #5257

  • daniyar537
  • OFFLINE
  • Новый участник
  • Posts: 2
  • Karma: 0
Добрый день.
Я хотел бы проверить скачанный с сайта корневой сертификат НУЦ(старый и новый) на отозванность(OSCP), метод возвращает статус CRLReason: certificateHold. Могли бы помочь с этим?
Пример кода на OSCP запрос взял из SDK.


Тажке на знаю что передать в качестве поля CA_CERT_FILE. pki_gost.cer ИЛИ pki_rsa.cer. На текущий момент попробовал проверить и с pki_gost.cer И c pki_rsa.cer. Результат CRLReason: certificateHold

public boolean isRevoked(X509Certificate certificate, CertType certType) throws Exception {

boolean result;

try {
X509Certificate cacert = getX509Certificate(CA_CERT_FILE);

byte[] ocspReq = getOcspPackage(certificate.getSerialNumber(), cacert, CertificateID.HASH_SHA1);

URL url = new URL(oscpConfig.getOscpUrl());
HttpURLConnection con;

if(oscpConfig.isProxy()) {
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress(oscpConfig.getProxyAddress(), oscpConfig.getProxyPort()));
con = (HttpURLConnection) url.openConnection(proxy);
} else {
con = (HttpURLConnection) url.openConnection();
}

con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/ocsp-request");
OutputStream os = con.getOutputStream();
os.write(ocspReq);
os.close();

result = makeOcspResponse(con);
con.disconnect();
} catch (Exception e) {
log.error("Error on checking oscp online.");

throw new Exception(e);
}
return result;
}

private boolean makeOcspResponse(HttpURLConnection con) throws Exception {
InputStream in = con.getInputStream();
OCSPResp response = new OCSPResp(in);
in.close();

if (response.getStatus() != 0) {
log.error("OCSP error", new OCSPException("Unsuccessful request. Status: " + response.getStatus()));
return false;
}
BasicOCSPResp brep = (BasicOCSPResp) response.getResponseObject();
byte[] respNonceExt = brep.getExtensionValue(OCSPObjectIdentifiers.id_pkix_ocsp_nonce.getId());
if (null != respNonceExt) {
ASN1InputStream asn1In = new ASN1InputStream(respNonceExt);
DERObject derObj = asn1In.readObject();
asn1In.close();
asn1In = new ASN1InputStream(DEROctetString.getInstance(derObj).getOctets());
asn1In.close();
}

Object status = brep.getResponses()[0].getCertStatus();

if (null == status) {
log.info("OCSP Response is GOOD");
return false;
}
if (status instanceof RevokedStatus) {
log.info("OCSP Response is REVOKED");
return true;
}
return false;
}

private byte[] getOcspPackage(BigInteger serialNr, Certificate cacert, String hashAlg) throws Exception {
OCSPReqGenerator gen = new OCSPReqGenerator();
CertificateID certId = new CertificateID(hashAlg, (X509Certificate) cacert, serialNr, provider.getName());
gen.addRequest(certId);
gen.setRequestExtensions(generateExtensions());
return gen.generate().getEncoded();
}

private static X509Extensions generateExtensions() {
SecureRandom sr = new SecureRandom();
byte[] nonce = new byte[8];
sr.nextBytes(nonce);
X509Extension nonceext = new X509Extension(false, new DEROctetString(new DEROctetString(nonce)));
Hashtable exts = new Hashtable();
exts.put(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, nonceext);
return new X509Extensions(exts);
}

Считаете ли вы хорошей логикой проверять на отозванность скачанный корневой сертификат?

Re: OSCP корневого сертификата 3 days, 2 hours ago #5258

  • ololo
  • OFFLINE
  • Живу я здесь
  • Posts: 465
  • Karma: 57
Добрый день.
Сертификаты, выпущенные НУЦ содержат поле с указанием сервиса OCSP, но в сертификатах самого НУЦ и КУЦ такое поле отсутствует. Потому что их можно проверить только по CRL, которые периодически обновляются.
По хорошему - стоит проверять.
gg wp
  • Page:
  • 1
Time to create page: 0.20 seconds
FaLang translation system by Faboba