LoginSignup
36
32

More than 5 years have passed since last update.

puma-devを使ってRailsの開発サーバーをhttps対応にする

Last updated at Posted at 2017-03-08

ローカルのサーバーをhttpsにしないと困るケースが増えてきていると思います。

  • LINEログインなど外部の連携サービスがhttpsを強制するケース
  • iOSがATSによりhttpsを強制するケース
  • ブラウザでカメラを使うケース

自分で証明書を作る方法もあるでしょうが、大抵面倒です。Railsアプリケーションの場合は、puma-devを使うことで簡単に実現できます。

そもそもpuma-devとは

rack/railsのアプリを簡単に立ち上げたり、アイドルになったら止めたり、localhost:3000等ではなく.devドメインでアクセスできるようにするツールです。

同様のツールにpowというものもありますが、ActionCableとの相性やhttpsのサポートなどを考えると最近アクティブなpuma-devのほうがより良いと思います。

puma/puma-dev: A tool to manage rack apps in development with puma

個人的にはdevドメインでアクセスできるようになるのと、httpsが使えるのが便利で使っています。

(※puma-devはLinuxでも使えるようですが、僕がmacOSでしか試していないのでLinuxではこの記事と異なるかもしれません)

.devドメイン

例えばrails new railsappのような感じでアプリケーションを作ってpuma-dev用の設定をすれば、http://railsapp.dev というURLでローカルのサーバーにアクセスできるようになります。rails sはしません。

通常のrails sだと複数のアプリケーションを立ち上げるときにポートを変えて立ち上げなければならず(rails s -p 3001など)、アクセスするときもlocalhost:3001等になってしまい、覚えておくのが大変です。

URLがプロジェクト名に対応しているとわかりやすくなります。http://facebook.dev/とかhttp://twitter.dev/だったとしたら良いですよね。

LANからアクセス

powと同じようにxip.ioドメインがサポートされています。LAN内の別の端末からhttp://railsapp.192.168.1.1.xip.ioのようにIPを含めたURLでもアクセスできるようになります。

実機スマートフォンからの確認等に便利です。

本題のhttps対応

実はpuma-devを使うということ以外何も要りません。URLをhttpsにするだけです。

puma-devを使えば特に何もしなくてもローカルの開発サーバーがhttps対応になります。先ほどの例で言えばhttps://railsapp.devという感じです。

面倒だったhttps対応がpuma-devで簡単に実現できました。

(追記)

Macでも一手間かけないとhttps接続に警告がでることを指摘してもらいました。 @jnchito Thanks!

まず、証明書をMacにインストールします。ファイルは↓にあるcert.pemです。

~/Library/Application Support/io.puma.dev/cert.pem

次に、その証明書を「常に信頼」にしておきます。

スクリーンショット 2017-03-09 8.07.22.png

これでMacでのhttps対応はOKとなります。

追記2

僕のうろ覚えもあって、https対応のところは証明書を信頼するだけじゃないかもしれません、スイマセン。ブラウザ側で許可する必要があるという話もあるし、他にも必要なステップがあるかもしれません。そしたら適宜コメントで補足してくれるとありがたいです。

@jnchito さんが色々試してくれたので↑でうまくいかない人はコメントを参考にしてください。

(余談)iOS端末からhttpsでアクセスする

xip.ioドメインを使ってiPhone実機からアクセスできることは先程書きました。当然これをhttpsにできるわけですが、その際証明書の警告が出ます。オレオレ証明書を使うときと同様です。

この場合、puma-devと一緒にインストールされた証明書ファイルをiOSデバイスにインストールしてあげることで警告無くアクセスできるようになります。

~/Library/Application Support/io.puma.dev/cert.pem

AirDrop経由などで送ると良いです。

36
32
4

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
36
32