ДОБАВИТЬ сертификат в заголовок HTTP - PullRequest
0 голосов
/ 13 января 2020

Я хочу добавить сертификат в заголовок http. Мои вопросы:

  1. Нужно ли отправлять его как байтовый массив? или как String?
  2. Если да, метод toString java .securit.PublicKey создает хорошее строковое представление?
  3. Разве это не слишком долго для вставки в http заголовок или нет? Спасибо

Код:

public byte []   getCertificate() throws IOException, KeyStoreException, CertificateException, NoSuchAlgorithmException {
    if (Configuration.getSignaturekeyStoreLocation()==null || ewalletConfiguration.getSignaturekeyStoreLocation().isEmpty()) {
            throw new IllegalArgumentException("Keystore url must not be null");
        }
        FileInputStream is = new FileInputStream(Configuration.getSignaturekeyStoreLocation());
        char[] keyPassword = ewalletConfiguration.getSignaturekeyStorePassword().toCharArray();
        KeyStore keystore = KeyStore.getInstance("JKS");
        //keyStore Password
        keystore.load(is, keyPassword);
        //
        final Certificate cert = (Certificate) keystore.getCertificate(Configuration.getSignatureCertificateAlias());

        return  cert.getEncoded();
}``

`

1 Ответ

0 голосов
/ 15 января 2020

Существуют разные цели, по которым в заголовке должен быть сертификат, поэтому было бы проще, если бы вы объяснили вариант использования.

Нужно ли отправлять его как байтовый массив? или как строка?

Заголовки HTTP всегда являются строкой, я бы предположил, что вам потребуется использовать кодировку base64.

Если да, метод toString для java .securit.PublicKey создает хорошее строковое представление?

Нет, ключ publi c является только ключом publi c, а не целым сертификатом (сертификат содержит publi c ключ). Самый простой способ получить (x509) представление сертификата - использовать getEncoded метод

Разве это не слишком долго для вставки в заголовок http или нет? Спасибо

Может. Обычно http-серверы имеют определенный буфер заголовка (например, apache tomat имеет / имел буфер по умолчанию 8 КБ, IIS 16 КБ), поэтому, если возвращенный закодированный ответ будет больше, сервер может вернуть ответ об ошибке. Даже я знаю, что некоторые клиенты / браузеры имеют разные ограничения.

Мне было бы любопытно, чего вы хотите достичь, может быть, есть более надежный способ, такой как отправка необходимого сертификата в полезной нагрузке или отправка только подписи сертификата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...