Существуют разные цели, по которым в заголовке должен быть сертификат, поэтому было бы проще, если бы вы объяснили вариант использования.
Нужно ли отправлять его как байтовый массив? или как строка?
Заголовки HTTP всегда являются строкой, я бы предположил, что вам потребуется использовать кодировку base64.
Если да, метод toString для java .securit.PublicKey создает хорошее строковое представление?
Нет, ключ publi c является только ключом publi c, а не целым сертификатом (сертификат содержит publi c ключ). Самый простой способ получить (x509) представление сертификата - использовать getEncoded метод
Разве это не слишком долго для вставки в заголовок http или нет? Спасибо
Может. Обычно http-серверы имеют определенный буфер заголовка (например, apache tomat имеет / имел буфер по умолчанию 8 КБ, IIS 16 КБ), поэтому, если возвращенный закодированный ответ будет больше, сервер может вернуть ответ об ошибке. Даже я знаю, что некоторые клиенты / браузеры имеют разные ограничения.
Мне было бы любопытно, чего вы хотите достичь, может быть, есть более надежный способ, такой как отправка необходимого сертификата в полезной нагрузке или отправка только подписи сертификата