Skip to content

Instantly share code, notes, and snippets.

@hyuki

hyuki/mkcert.md Secret

Last active December 31, 2023 19:37
Show Gist options
  • Select an option

  • Save hyuki/6f965e2877f75d0eb5d92982c080dab9 to your computer and use it in GitHub Desktop.

Select an option

Save hyuki/6f965e2877f75d0eb5d92982c080dab9 to your computer and use it in GitHub Desktop.
#ChatGPT: mkcertを使用してlocalhost用の証明書を作成し、それをRubyのWEBrickサーバで使用する方法

※注意:以下はChatGPTの出力そのままです。利用は自己責任で。

mkcertを使用してlocalhost用の証明書を作成し、それをRubyのWEBrickサーバで使用する方法

このまとめは、mkcertを使用してlocalhost用の証明書を作成し、それをWEBrickサーバで使用する基本的な手順を示しています。実際の環境やニーズに応じて適宜調整してください。

mkcertのインストール

  1. 公式のGitHubリポジトリからmkcertをダウンロードします。

  2. ダウンロードしたファイルを実行可能にし、適切なディレクトリに移動します。

証明書の作成

  1. ローカルCA(認証局)のセットアップ:

    • mkcert -install コマンドを実行して、ローカルCAを作成し、システム/ブラウザにインストールします。
  2. 証明書の生成:

    • mkcert localhost 127.0.0.1 ::1 コマンドを使用して、localhostとIPアドレス用の証明書を生成します。

WEBrickでのSSL設定

必要なファイル

  • 証明書ファイル: mycert.pem
  • 秘密鍵ファイル: mycert-key.pem

Rubyスクリプトの準備

require 'webrick'
require 'webrick/https'
require 'openssl'

server = WEBrick::HTTPServer.new(
  Port: 443,  # HTTPSのデフォルトポート
  DocumentRoot: '.',  # ドキュメントルートのパス

  # SSL設定
  SSLEnable: true,
  SSLCertificate: OpenSSL::X509::Certificate.new(File.read("path/to/mycert.pem")),
  SSLPrivateKey: OpenSSL::PKey::RSA.new(File.read("path/to/mycert-key.pem")),
  SSLCertName: [["CN", WEBrick::Utils::getservername]]
)

trap 'INT' do server.shutdown end
server.start

注意点

  • 443ポート以外を使用する場合は、Portの値を適切なポート番号に変更してください。
  • path/to/mycert.pempath/to/mycert-key.pem は、それぞれ証明書ファイルと秘密鍵ファイルの実際のパスに置き換えてください。
  • WEBrickは開発やテストに適していますが、本番環境ではより高性能なサーバを使用することを推奨します。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment