6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WEBRickで作ったなんちゃってWeb APIサーバーをなんちゃってHTTPS対応させる

Posted at

前回までのあらすじ

前回「 開発用なんちゃってWeb APIサーバーを作ってみた 」は、WEBRickを使って開発用のダミーの Web APIサーバーを作るお話でした。

今回のお話

今回は小ネタですが、これを HTTPS対応させてみたいと思います。
前回のソースコードに手を加えていきましょう。

https 用のライブラリを require する

まずは、 https の通信ができるように必要なライブラリを require します。

ueb_api.rb
require 'webrick'
require 'webrick/https' # この行を追加する
require 'json'

SSLの切り替えができるようにする

UebAPIinitialize メソッドを修正して ssl を使うかどうか指定できるようにします。

ueb_api.rb
  def initialize(bind_address: '127.0.0.1', port: 18_080, ssl_enable: false)
    @srv = WEBrick::HTTPServer.new(
      BindAddress: bind_address,
      Port: port,
      SSLEnable: ssl_enable, # この行を追加
      SSLCertName: [['CN', WEBrick::Utils.getservername]], # この行を追加
    )
    @mount_procs = {}
  end
  • initialize メソッドに、 :ssl_enable 引数を追加します。 デフォルトは、 false です。
  • WEBRick::HTTPServer.new メソッドを呼び出す時に、 :SSLEnable:SSLCertName の2つの引数を指定します。
  • :SSLEnablefalse の時は、 HTTPS ではなく、 HTTP として動作します。
  • :SSLCertName を上記のように指定しておけば、起動時に、自前で証明書が作成されるようです。

UebAPI オブジェクト生成箇所を修正する

UebAPI オブジェクトを生成させるときに、 :ssl_enable パラメータを指定します。

ueb_api.rb
# ssl_enable: true を指定して HTTPS として動作させる
# ssl_enable: false の時、 :ssl_enable を省略した時は、HTTPで動作する。
srv = UebAPI.new(ssl_enable: true)

まとめ

小ネタですがHTTPS対応させてみました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?