Не удается пройти аутентификацию в Intuit API Explorer

Я пытаюсь пройти аутентификацию в обозревателе API Intuit, чтобы лучше ознакомиться с API данных клиента (AggCat).

Я ввожу ключ/секрет потребителя, идентификатор SAML, идентификатор пользователя и исходный сертификат .crt, который я загрузил. Я получаю сообщение об ошибке:

The given certificate file is not supported. Please provide valid PEM certificate file.

Я не понимаю эту ошибку, потому что файл .crt, насколько я могу судить, закодирован в PEM.

Тем не менее, я перешел на страницу «Создать ключи X.509»:

http://docs.developer.intuit.com/0020_aggreting_cateition_Apps/009_USING_AGGCAT/0010_GETTINGSTARTEDED/0015_CREATE_AN_AGGCAT_INTEGRATION/00_CREATING_X.509_PULACTION_CERTICATESTECTORSTALLREL=

и следовал инструкциям внизу «Создание файла PEM». Я могу пройти шаг 1 (преобразовать хранилище jks в формат p12), но при попытке запустить шаг 2 я получаю следующую ошибку:

$ openssl pkcs12 -in keystore.p12 -nocerts -out cert.pem

MAC verified OK
Error outputting keys and certificates
139679448614560:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:
139679448614560:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:104:
139679448614560:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:130:

Я использую jdk-1.7.0_17 и openssl-1.0.1 на Ubuntu-12.04 LTS.

Спасибо за любую помощь.


person pparavicini    schedule 16.04.2013    source источник
comment
какую подпись вы использовали? он не поддерживает SHA256 с RSA и должен быть 256.   -  person Jarred Keneally    schedule 17.04.2013


Ответы (1)


Нашел, хватит искать!

Проблема возникает из-за того, что формат PKCS12 не поддерживает отдельные пароли для файла хранилища и любых ключей внутри него. И файл хранилища, и ключ внутри него должны быть зашифрованы одним и тем же паролем.

Таким образом, проще всего было повторить процесс еще раз и на этапе создания исходного закрытого ключа и хранилища ключей с помощью keytool:

keytool -genkey -alias myapp -validity 1095 -keyalg RSA -keystore keystore.jks

обязательно используйте один и тот же пароль как для хранилища ключей (storepass), так и для закрытого ключа (keypass).

В качестве альтернативы, если вы действительно должны/хотите использовать отдельные пароли для хранилища ключей и ключа на этом этапе, на начальном этапе создания PEM:

keytool -importkeystore -srckeystore [MY_KEYSTORE.jks] 
  -destkeystore [MY_FILE.p12]
  -deststoretype PKCS12 
  -deststorepass [PASSWORD_PKCS12] change this to [KEYPASS]
  -srcstorepass [PASSWORD_JKS]

установите -srcstorepass на пароль хранилища ключей (storepass), но установите -deststorepass файла PKCS12 на пароль закрытого ключа (keypass), который использовался при создании ключа/хранилища ключей с помощью команды keytool -genkey, описанной выше.

Я не проверял эту альтернативу, но она тоже должна работать, так как и хранилище PCKS12, и ключ будут использовать один и тот же пароль.

person pparavicini    schedule 18.04.2013