2023-08-19 追記: 改良版を書いた。
WEBrick::HTTPServer.new()
にSSLEnable: true
とSSLCertName
を渡すSSLCertName: [['CN', WEBrick::Utils.getservername]]
とすると起動時に証明書を自動生成する
srv = WEBrick::HTTPServer.new({ :DocumentRoot => './', :BindAddress => '127.0.0.1', :Port => 8080, SSLEnable: true, SSLCertName: [['CN', WEBrick::Utils.getservername]]}) # ローカルマシン上で実行する場合 [['CN', 'localhost']] でも可 srv.mount_proc('/') { |req, res| r = Hash[URI.decode_www_form(req.request_uri.query)] res.body = r.inspect } trap("INT"){ srv.shutdown } srv.start
即席で作られた自己証明書なので、
- curl の場合
-k
オプションが必要curl -k https://localhost:8080
- Chrome では相当頑張らないとアクセスできない
参考