2013-04-16 56 views
0

我正在嘗試向Intuit API Explorer進行身份驗證,以便更好地熟悉客戶數據(AggCat)API。無法對Intuit API Explorer進行身份驗證

我輸入消費者密鑰/密鑰,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格式),但嘗試運行第二步:當我得到以下錯誤:

$ 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上。

感謝您的任何幫助。

+0

您使用了哪個簽名?它不支持SHA256withRSA,它必須是256。 –

回答

0

發現它,停止尋找!

問題出在這樣的事實,即PKCS12格式不支持存儲文件和其中任何密鑰的單獨密碼。存儲文件和其中的密鑰都必須使用相同的密碼進行加密。

所以,最簡單的是要再次經歷的過程,並在生成初始私有密​​鑰和密鑰庫與密鑰工具的步驟:

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存儲和密鑰最終都會使用相同的密碼。

相關問題