无法对Intuit API Explorer进行身份验证

时间:2013-04-16 18:31:19

标签: intuit-partner-platform customer-account-data-api

我正在尝试对Intuit API Explorer进行身份验证,以便更好地熟悉客户数据(AggCat)API。

我输入了消费者密钥/密钥,SAML ID,用户ID以及我上传的原始.crt证书。我收到错误:

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

我不明白这个错误,因为据我所知,.crt文件是PEM编码的。

然而,我进入了“创建X.509键”页面:

http://docs.developer.intuit.com/0020_Aggregation_Categorization_Apps/009_Using_AggCat/0010_GettingStarted/0015_Create_an_AggCat_integration/0010_Creating_X.509_Public_Certificates

并按照“生成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:

我在ubuntu-12.04 LTS上使用jdk-1.7.0_17和openssl-1.0.1。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

找到它,停止寻找!

问题源于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)的密码,但设置为 将PKCS12文件的-deststorepass转换为通过上面的keytool -genkey命令创建密钥/密钥库时使用的私钥密码(keypass)。

我没有测试过这个替代方案,但它也应该可以正常工作,因为PCKS12商店和密钥最终都会使用相同的密码。