Я написал код TLS, который выполняет взаимную аутентификацию на Java, поэтому клиент отправляет свой сертификат после того, как сервер отправит свой сертификат. Я хотел бы проверить все сертификаты в цепочке сертификатов по OCSP, которая поступает со стороны клиента на сторону сервера.
Я написал свою логику цикла, предполагая, что последний сертификат является корневым (CA) сертификатом в цепочке, а не отправлять какой-либо запрос OCSP для него;
int certificateChainSize= x509Certificates.length;
// Verifies certificate chain respectively (issuer certificate required).
CertificateResult response = null;
try {
for (int i = 0; i < certificateChainSize-1 ; i++) {
response = client.verify(x509Certificates[i], x509Certificates[i+1]);
}
} catch (OcspException e) {
e.printStackTrace();
}
Когда я тестировал TLS и получал перехват Wireshark, я понял, что Google Chrome как клиент отправляет цепочку сертификатов без рута. В следствии; промежуточный сертификат не запрашивается из-за логики цикла, поскольку мой код предполагал, что промежуточный сертификат является корневым.
Как заставить клиента отправлять все узлы цепочки сертификатов?
Спасибо