##前提
AWSのEC2上でRailsを起動してIPアドレスでアプリが起動しましたが投稿ができずエラーになってしまいます。ローカルでもherokuでも投稿ができ、S3にも反映されているので、原因はEC2だと考えています。
バージョン
- Ruby 2.5.7
- Rails 5.2.4.4
##解決したいこと
ローカルで投稿できるのに本番環境では投稿できないこと。
##本番環境で発生しているエラー
https://gyazo.com/ebd6e142aa037d125db11775190e5e5e
We're sorry, but something went wrong. If you are the application owner check the logs for more information.
##調べたこと
このエラーメッセージは「本番環境でmigrateしたら解決する」と書かれていたのでmigrateしましたが特に解決しなかったので、EC2のエラーログを見ることにしました。エラーログは以下のように書かれていました。
##発生しているエラーlog
Completed 500 Internal Server Error in 5510ms (ActiveRecord: 1.7ms) Excon::Error::Socket (hostname "uploads.uploads.s3.amazonaws.com" does not match the server certificate (OpenSSL::SSL::SSLError)):
##S3設定のときに修正したファイル(念のため提示)
config/initializers/carrier_wave.rb
if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { # Amazon S3用の設定 :provider => 'AWS', :region => ENV['S3_REGION'], :aws_access_key_id => ENV['AWS_ACCESS_KEY_ID'], :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], :path_style => true } config.fog_directory = ENV['S3_BUCKET'] end end
app/uploaders/picture_uploader.rb
if Rails.env.production? storage :fog else storage :file end
##補足
エラー内容について調べましたが前例が少ないのか解決策が見つかりませんでした。
必要箇所他にございましたら提供いたしますので、ご教示いただきたく存じます。
お手数をおかけしますが何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー