class HttpCertSigner implements CertSigner {

    @Override
    public String getCACertificate() {

        ContentResponse response;
        try {
            response = httpClient.GET(x509CertUri);
        } catch (InterruptedException | ExecutionException | TimeoutException e) {
            LOGGER.error("getCACertificate: unable to fetch requested uri '" + x509CertUri + "': "
                    + e.getMessage());
            return null;
        }
        if (response.getStatus() != HttpStatus.OK_200) {
            LOGGER.error("getCACertificate: unable to fetch requested uri '" + x509CertUri +
                    "' status: " + response.getStatus());
            return null;
        }

        String data = response.getContentAsString();
        if (data == null || data.isEmpty()) {
            LOGGER.error("getCACertificate: received empty response from uri '" + x509CertUri +
                    "' status: " + response.getStatus());
            return null;
        }

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("getCACertificate: CA Certificate" + data);
        }

        X509CertSignObject pemCert = JSON.fromString(data, X509CertSignObject.class);
        return (pemCert != null) ? pemCert.getPem() : null;
    }

    public  HttpCertSigner();

}