LoginSignup
0
0

More than 3 years have passed since last update.

heroku で Active Storage を通して GCS に接続時 Neither PUB key nor PRIV key: nested asn1 error が発生する

Posted at

*ローカル環境では正しく接続できている前提です

ローカルで動いてもherokuで動かない

ローカル環境では正常に接続できていてもherokuにデプロイすると
Neither PUB key nor PRIV key: nested asn1 error
が発生する
エラー時のstorage.yml

storage.yml
google:
  service: GCS
  credentials:
    type: "service_account"
    project_id: ""
    private_key_id: "<%= Rails.application.credentials.private_key_id %>"
    private_key: "<%= Rails.application.credentials.private_key %>"
    client_email: ""
    client_id: ""
    auth_uri: ""
    token_uri: ""
    auth_provider_x509_cert_url: ""
    client_x509_cert_url: ""
  project: "My First Project"
  bucket: "hogehuga"

credentialsを利用して秘密鍵を渡していた
herokuでコンソールを叩いても正常に読み込めている

heroku側で改行がうまくいかないという情報もあったので
private_key: "<%= Rails.application.credentials.private_key.gsub("\\n", "\n") %>"
に変更したが、同様のエラーが発生した

解決策 直接渡す

storage.ymlを

    private_key_id: "<%= ENV['PRIVATE_KEY_ID'] %>"
    private_key: "<%= ENV['PRIVATE_KEY'] %>"

heroku config:set
でherokuの環境変数に直接秘密鍵をそのまま挿入
これで正常に接続でき、画像の保存と読み込みが行えます

結論

credentials から値を持ってくるときにheroku側で何らかの想定しない処理が行われてしまっていると思われる


解決はしましたが、詳しい原因が分かっておりません
詳細がわかる方いましたらコメント頂けると幸いです

参考: https://qiita.com/syossan27/items/f67cc3fd24e90b2a819c

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0