Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
79
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

ローカル環境でSSLをオレオレ証明書で行っていて警告が出てる人に朗報

概要

いつも警告が出て面倒に思っている自分がいましたが、ついにそれが解決できるときが。ブラウザからオフにすることもできるがセキュリティレベルを下げるのはよろしくないので、今までその選択肢を使っていませんでしたが、今年の6月にmkcertというリポジトリができ、この短期間でスターが1万超え!Goで作られていますね。

スクリーンショット 2018-10-13 19.41.16.png

mkcertで証明書を発行するとなんと警告が出なくなりました!

スクリーンショット 2018-10-13 19.39.35.png

さっそく、インストールを手順を説明していきます。

環境

OS: 10.13.5
ブラウザ: chrome 69

インストール手順

mkcertのインストール

homebrewからインストール可能です。READMEにも書いてありますが、Firefoxを使用している人は、別途nssのインストールが必要みたいです。今回はChromeで行ったのでFirefox環境では検証していません。

brew install mkcert
brew install nss # if you use Firefox

local CAをインストール

mkcert -install

※ macOSの場合 /Users/hogeuser/Library/Application Support/mkcert に local CAファイルが生成されます

指定ドメインの証明書を作成

今回は、以下の4つの証明書を発行します。homeディレクトリで以下のコマンドを実行すると、homeディレクトリ配下に 0.0.0.0+3-key.pem0.0.0.0+3.pem というファイルができます。 +3 は、 0.0.0.0 以外に3つのドメインで使用できるという意味だと思います。 0.0.0.0 だけで実行するとファイルは、 0.0.0.0-key.pem になります。

mkcert 0.0.0.0 localhost 127.0.0.1 ::1

アプリケーションサーバーで読み込ませる

あとは、起動するアプリケーションサーバーに読み込ませるだけです。今回は、Rails Pumaで読み込ませる例を一応記載しておきます。
ちなみに、 0.0.0.0+3-key.pem のままのファイル名だと記号があるせいでうまく読み込まれないので、コピーしてリネームしています。
0.0.0.0+3-key.pem -> server.key
0.0.0.0+3.pem -> server.crt

if "development" == ENV.fetch("RAILS_ENV") { "development" }
  ssl_bind (ENV['DOCKER_HOST'] || '127.0.0.1'), '3001', {
    key: "config/server.key",
    cert: "config/server.crt",
    verify_mode: "none"
  }
end

以上で、警告が出なくなります!超簡単!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
79
Help us understand the problem. What are the problem?