Зашифрованное и закодированное представление XML сертификата X.509 для метаданных SAML - PullRequest
1 голос
/ 22 сентября 2009

Я приказываю установить единый вход и работать в качестве поставщика услуг с моим поставщиком удостоверений. Мне нужно указать, какой сертификат я хочу использовать для подписи и шифрования в 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>

1 Ответ

1 голос
/ 23 сентября 2009

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

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

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

...