Mkcert:ローカルホストの有効なHTTPS証明書







最近では、すべてのサイトおよびWebアプリケーションでHTTPSの使用が必須になっています。 しかし、開発プロセスには、正しいテストの問題があります。 当然、Let's Encryptおよびその他のCAは、localhostの証明書を発行しません。



従来、2つのソリューションがあります。



  1. opensslなどを介して生成された自己署名証明書:localhostの秘密鍵と自己署名証明書を生成する最も簡単な方法は次のとおりです。



    openssl req -x509 -out localhost.crt -keyout localhost.key \ -newkey rsa:2048 -nodes -sha256 \ -subj '/CN=localhost' -extensions EXT -config <( \ printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
          
          





    ただし、信頼できるストアには対応する証明機関がないため、このような証明書はブラウザーで信頼エラーを引き起こします。
  2. トリックは、localhost.example.comなどの新しいドメインを登録して、ローカルで127.0.0.1(/ etc / hosts内)に解決し、このドメインの通常の証明書を取得することです。 しかし、このような詐欺はセキュリティの観点から疑わしい-少なくとも公共サービスでは、敵対的なIPアドレスの変更によるMiTM攻撃の可能性があるため、そのような解決は強く推奨されません 。 ローカルマシンのみに制限する場合、これは適切なオプションかもしれませんが、いくつかの疑問もあります。 さらに、そのような証明書は取り消される場合があります。 いずれにしても、よりシンプルで安全なオプションがあります(以下を参照)。


これはmkcertであり、独自の証明機関で局所的に信頼できる証明書を生成するための簡単なユーティリティです。 すべてのOSで機能し、構成は必要ありません。



Linuxバージョン



certutil



をインストールする必要がありcertutil







 sudo apt install libnss3-tools -- sudo yum install nss-tools -- sudo pacman -S nss
      
      





それから



 brew install mkcert
      
      





またはソースからコンパイル:



 go get -u github.com/FiloSottile/mkcert $(go env GOPATH)/bin/mkcert
      
      





MacOSバージョン



 brew install mkcert brew install nss # if you use Firefox
      
      





Windows版



Windowsでは、 収集したバイナリをダウンロードするか、パッケージマネージャーのいずれか(ChocolateyまたはScoop)を使用できます。



 choco install mkcert -- scoop install mkcert
      
      





ローカル認証局の存在は、mkcertとopensslおよび自己署名証明書の最も重要な基本的な違いです。これは、このようなCAを実行すると、ローカルで信頼エラーが発生しないためです。



原則として、他の手段を使用して独自のCAを開始および構成できますが、これには重要な知識とスキルが必要です。 ここでは、追加のキーや設定なしで、すべてが単独で行われます。 プログラムをインストールするだけで、ローカル認証局が自動的に作成され、システムの信頼できるストレージとFirefoxの信頼できるストレージに入力されます。



 $ mkcert -install Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" The local CA is now installed in the system trust store! ️ The local CA is now installed in the Firefox trust store (requires restart)!
      
      






All Articles