1

Приложение, которое я создаю, интегрируется с сторонним api. Для доступа к этому api он аутентифицируется через oauth с использованием метода подписи RSA-SHA1, для которого требуется файл сертификата.Развертывание секретного файла сертификата в Heroku из CI (Codeship)

Приложение постоянно развертывается на heroku (php), используя код.

Я не хочу проверять сертификат в исходном элементе по разным причинам, но при необходимости нужно копировать сертификат на производственный диновер при каждом развертывании приложения. Это потому, что динамики Heroku являются апатридами, поэтому возвращайтесь, когда приложение развернуто (как я понимаю).

Каков наилучший способ скопировать этот сертификат на мой динозавр? Я думал об использовании команды, как это, но он не работает:

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

Я мог бы хранить фактические данные сертификатов в переменной окружения на Codeship так будет всегда.

В качестве альтернативы я мог бы создать файл сертификата в Codeship, а затем принудительно добавить его в развертывание git в Heroku. Может ли кто-нибудь давать какие-либо указания здесь?

ответ

0

Почему бы просто не хранить фактические данные сертификата в env var на Heroku?

+0

Предполагая, что у меня есть сертификат как файл private_key.pem, как сохранить его в качестве переменной среды, чтобы ['openssl_pkey_get_private()'] (http://php.net/manual/en/function. openssl-pkey-get-private.php) может его прочитать? – harryg

+1

Решение, которое я использовал, состояло в том, чтобы base64 кодировал содержимое файла сертификата (чтобы он мог быть сохранен как переменная env), а base64 декодировал его для использования с oauth-библиотекой. – harryg