1

我正在構建的應用程序與第三方api集成。爲了訪問這個API,它使用需要證書文件的RSA-SHA1簽名方法通過oauth進行身份驗證。從CI(Codeship)向Heroku部署祕密證書文件

該應用程序使用codeship不斷部署在heroku(php)上。

由於各種原因,我不想將證書檢入到源代碼管理中,但每次部署應用程序時都需要一種將證書複製到生產代碼的方法。這是因爲Heroku dynos是無狀態的,所以在應用程序部署時恢復自己(據我瞭解)。

將此證書複製到我的dyno的最佳方法是什麼?我想用這樣的命令,但它不能正常工作:

heroku run "echo \"${CERTDATA}\" > ./storage/certs/my_cert.pem" 

我可以存儲在Codeship環境變量的實際證書數據,因此這將是始終可用。

或者我可以在Codeship中創建證書文件,然後強制將它添加到Heroku的git部署中。任何人都可以在此提供任何指導

回答

0

爲什麼不把實際證書數據存儲在Heroku的env var中?

+0

假設我有證書作爲'private_key.pem'文件,我將如何將它存儲爲環境變量,以便['openssl_pkey_get_private()'](http://php.net/manual/en/function。 openssl-pkey-get-private.php)可以讀取它? – harryg

+1

我使用的解決方案是base64對cert文件內容進行編碼(因此它可以保存爲env變量),base64對它進行解碼以便與oauth庫一起使用。 – harryg