LoginSignup
4
5

localhostでHTTPSを使用する #<Puma::HttpParserError: Invalid HTTP format, parsing fails. Are you trying to open an SSL connection to a non-SSL Puma?>

Posted at

はじめに

個人開発のアプリ制作を始めました。
調べながらの実装になるので、メモとして記載しています。

※注意※
プログラミング学習中の初心者です。
記述に間違いがあれば、ご指摘いただけますと幸いです。

環境

Mac M1
rails 7.0.7.2
ruby 3.2.0
Node.js 20.2.0
Yarn 1.22.19

発生したエラー

HTTP parse error, malformed request: #<Puma::HttpParserError: Invalid HTTP format, parsing fails. Are you trying to open an SSL connection to a non-SSL Puma?>

解決方法

$ bin/div での起動ではなく、下記コードで起動する。

$ bundle exec pumactl start

なぜHTTPS通信をする必要があったか

今回LINE認証をするにあたって、下記記事とLINEのドキュメントを参考にしながら進めていました。

開発環境での動作を確認しておきたかったため、ローカル開発環境でSSL/TLS証明書を作成するためのツール、mkcertを導入しましたが、上記エラーが出て進みませんでした。。。

結果SSL証明書は問題なく発行できており、そもそもの起動のコマンドを変えることで解決しました。
$bin/devでもpumaは読み込んではいたのですが、SSLがうまくいった下記のコマンドのログと見比べてみると、SSLのパスワードを読み込んでいなかったので、そこが原因かと思われます。

$ bin/dev    
15:38:29 web.1  | => Booting Puma
15:38:29 web.1  | => Rails 7.0.8 application starting in development 
15:38:29 web.1  | => Run `bin/rails server --help` for more startup options
15:38:29 web.1  | Puma starting in single mode...
15:38:29 web.1  | * Puma version: 5.6.7 (ruby 3.2.0-p0) ("Birdie's Version")
15:38:29 web.1  | *  Min threads: 5
15:38:29 web.1  | *  Max threads: 5
15:38:29 web.1  | *  Environment: development
15:38:29 web.1  | *          PID: 76794
15:38:29 web.1  | * Listening on http://127.0.0.1:3000
15:38:29 web.1  | * Listening on http://[::1]:3000
15:38:29 web.1  | Use Ctrl-C to stop
bundle exec pumactl start
Puma starting in single mode...
* Puma version: 5.6.7 (ruby 3.2.0-p0) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 76966
* Listening on ssl://0.0.0.0:3000?cert=config%2Fcerts%2Flocalhost.pem&key=config%2Fcerts%2Flocalhost-key.pem&verify_mode=none
Use Ctrl-C to stop

参考

4
5
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
4
5