前回までのあらすじ
前回「 開発用なんちゃってWeb APIサーバーを作ってみた 」は、WEBRickを使って開発用のダミーの Web APIサーバーを作るお話でした。
今回のお話
今回は小ネタですが、これを HTTPS対応させてみたいと思います。
前回のソースコードに手を加えていきましょう。
https 用のライブラリを require する
まずは、 https の通信ができるように必要なライブラリを require します。
ueb_api.rb
require 'webrick'
require 'webrick/https' # この行を追加する
require 'json'
SSLの切り替えができるようにする
UebAPI
の initialize
メソッドを修正して 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つの引数を指定します。 -
:SSLEnable
がfalse
の時は、 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対応させてみました。