###実現したいこと
開発環境として使用しているMacからhttpsで本番環境のrailsアプリにアクセスできるようにしたい
###環境
rails6,ec2-amazon_linux2(nginx puma),capistranoを使用しています。
証明書はACM、ドメインはroute53で取得しています。
私物のwindows(chrome),iphone(safari),他人のiphone(safari)からは正常にhttpsアクセスできます。
自身が開発環境として使用しているMac(Mojave10.14.6)からのみ、chrome,firefox共にアクセスできません。
キャッシュ(OSキャッシュ含む)やクッキーを削除しても同様です。
production.rbのconfig_force_sslはtrueです。
nginx,pumaのログにエラーは出力されていません。
以下にエラー状況や設定ファイルなど添付いたしますので、
アドバイスいただければ幸いです。
必要な情報がありましたら追記させていただきます。
###Macからアクセスした結果
このサイトは安全に接続できません
(ドメイン)から無効な応答が送信されました。
ERR_SSL_PROTOCOL_ERROR
###ALB
HTTP 80
HTTPS 443 証明書紐付け済み
###nginx.conf
user nginx; worker_processes auto; error_log /var/www/rails/myapp/shared/log/nginx.error.log warn; pid /var/run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/www/rails/myapp/shared/log/nginx.access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; gzip on; gzip_types text/css text/javascript application/javascript image/svg+xml; #include /etc/nginx/conf.d/*.conf; index index.html index.htm; upstream puma { server unix:///var/www/rails/myapp/shared/tmp/sockets/puma.sock; } server { listen 80 default_server; listen [::]:80 default_server; location / { access_log off; return 200 OK; } } server { listen 80; listen 443; listen [::]:80; server_name myapp.com; root /var/www/rails/myapp/current/public; include /etc/nginx/default.d/*.conf; location ~* .(html|jpeg|jpg|gif|png|css|js|ico|woff|svg)$ { access_log off; expires 7d; break; } location ~ ^/assets/ { root /var/www/rails/myapp/shared/public; } location / { try_files $uri $uri/index.html $uri.html @webapp; } location @webapp { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; if ($http_x_forwarded_proto = http) { return 301 https://$host$request_uri; } proxy_pass http://puma; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } }
###sudo netstat -tlnp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2687/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12870/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3271/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 12870/nginx: master
tcp6 0 0 :::3306 :::* LISTEN 3076/mysqld
tcp6 0 0 :::111 :::* LISTEN 2687/rpcbind
tcp6 0 0 :::80 :::* LISTEN 12870/nginx: master
tcp6 0 0 :::22 :::* LISTEN 3271/sshd
###curl
EC2からsudo curl -v https://ドメイン
- Rebuilt URL to: https://myapp.com/
- Trying 1.2.3.4...(EIPではない)
- TCP_NODELAY set
- Connected to myapp.com (1.2.3.4) port 443 (#0)
成功
Macからsudo curl -v https://ドメイン
- Rebuilt URL to: https://myapp.com/
- Trying (インスタンスのEIP)...
- TCP_NODELAY set
- Connection failed
- connect to (インスタンスのEIP) port 443 failed: Connection refused
- Failed to connect to myapp.com port 443: Connection refused
- Closing connection 0
curl: (7) Failed to connect to myapp.com port 443: Connection refused
回答2件
あなたの回答
tips
プレビュー