Зашифрованное и закодированное XML-представление сертификата X.509 для метаданных SAML

Я приказываю настроить SSO и работать в качестве поставщика услуг с моим поставщиком удостоверений. Мне нужно указать, какой сертификат я хочу использовать для подписи и шифрования в XML-файле обменных метаданных. Но как мне создать зашифрованное и закодированное представление (как показано ниже) моего сертификата, чтобы его можно было поместить в XML. Какой процесс мне нужно пройти здесь?

   <q1:KeyDescriptor use="signing">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
         <X509Data>
            <X509Certificate>MIICZDCCAdGg.....IQ0jOz8mmZToZD7ab9==</X509Certificate>
         </X509Data>
      </KeyInfo>
   </q1:KeyDescriptor>
   <q1:KeyDescriptor use="encryption">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
         <X509Data>
            <X509Certificate>MIICZDCCAdGg......IQ0jOz8mmZToZD7ab==</X509Certificate>
         </X509Data>
      </KeyInfo>
   </q1:KeyDescriptor>

person lox    schedule 22.09.2009    source источник


Ответы (1)


Тело <X509Certificate> представляет собой данные сертификата X509 в кодировке DER. Поскольку тип данных — base64Binary, он должен быть закодирован в Base64.

-----BEGIN CERTIFICATE-----
MIIDijCCAnICCQDXfWAafSjGzDANBgkqhkiG9w0BAQQFADCBhjELMAkGA1UEBhMC
...
meTdn90sElH+yhWNRi6XtXirsTjDXQhudWWJ8r5NPkTBE7lDtg+6SBfDCrWFsw==
-----END CERTIFICATE-----

То же самое в файле PEM между заголовком и нижним колонтитулом. Если вы получаете сертификат от CA, он обычно уже в формате PEM. Если нет, вы можете использовать OpenSSL или Java Keytool для его преобразования.

person ZZ Coder    schedule 22.09.2009
comment
поэтому я могу просто скопировать его в файл .der между линией головы и ноги? или у меня есть разрывы строк или что-то в этом роде? - person Gobliins; 03.11.2016
comment
@Gobliins, DER - это двоичный формат. PEM — это представление DER в base64, расположенное между строками BEGIN и END. Поскольку нам нужен DER в кодировке base64, вы можете либо запустить файл .der через кодировщик base64, либо удалить строки BEGIN и END из файла формата PEM. - person Bass; 20.09.2017