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

  • 5
    いいね
  • 0
    コメント

ローカルのサーバーを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が使えるのが便利で使っています。

.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で簡単に実現できました。

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

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

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

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

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

Comments Loading...