mkcert は、ローカルで信頼できる開発証明書を作成するためのシンプルなツールです。設定は必要ありません。
$ mkcert -install Created a new local CA ? The local CA is now installed in the system trust store! ⚡️ The local CA is now installed in the Firefox trust store (requires browser restart)! ? $ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1 Created a new certificate valid for the following names - "example.com" - "*.example.com" - "example.test" - "localhost" - "127.0.0.1" - "::1" The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
開発に実際の認証局 (CA) からの証明書を使用することは危険または不可能な場合があります ( example.test
、 localhost
、または127.0.0.1
などのホストの場合) が、自己署名証明書は信頼エラーを引き起こします。独自の CA を管理することが最善の解決策ですが、通常は難解なコマンド、専門知識、手動の手順が必要になります。
mkcert は、ローカル CA を自動的に作成してシステム ルート ストアにインストールし、ローカルで信頼できる証明書を生成します。ただし、mkcert は証明書を使用するようにサーバーを自動的に構成しません。それはユーザーの判断に任されます。
警告: mkcert が自動的に生成する
rootCA-key.pem
ファイルは、マシンからの安全なリクエストをインターセプトするための完全な機能を提供します。共有しないでください。
macOS では Homebrew を使用します
brew install mkcert brew install nss # if you use Firefox
またはMacPorts。
sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox
Linux では、まずcertutil
をインストールします。
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss -or- sudo zypper install mozilla-nss-tools
その後、Linux で Homebrew を使用してインストールできます
brew install mkcert
またはソースからビルド (Go 1.13 以降が必要)
git clone https://github.com/FiloSottile/mkcert && cd mkcert go build -ldflags "-X main.Version=$(git describe --tags)"
または、事前に構築されたバイナリを使用します。
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" chmod +x mkcert-v*-linux-amd64 sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
Arch Linux ユーザーの場合、 mkcert
公式 Arch Linux リポジトリで入手できます。
sudo pacman -Syu mkcert
Windows では Chocolatey を使用します
choco install mkcert
またはスクープを使用する
scoop bucket add extras scoop install mkcert
ソースからビルドするか (Go 1.10 以降が必要)、事前にビルドされたバイナリを使用します。
権限の問題が発生した場合は、管理者としてmkcert
実行してみてください。
mkcert は、次のルート ストアをサポートします。
macOS システム ストア
Windows システム ストア
次のいずれかを提供する Linux バリアント
update-ca-trust
(Fedora、RHEL、CentOS) または
update-ca-certificates
(Ubuntu、Debian、OpenSUSE、SLES) または
trust
(アーチ)
Firefox (macOS および Linux のみ)
クロムとクロム
Java ( JAVA_HOME
が設定されている場合)
ローカル ルート CA をそのサブセットにのみインストールするには、 TRUST_STORES
環境変数をカンマ区切りのリストに設定します。オプションは、「system」、「java」、「nss」(Firefox を含む)です。
-cert-file FILE, -key-file FILE, -p12-file FILE Customize the output paths. -client Generate a certificate for client authentication. -ecdsa Generate a certificate with an ECDSA key. -pkcs12 Generate a ".p12" PKCS #12 file, also know as a ".pfx" file, containing certificate and key for legacy applications. -csr CSR Generate a certificate based on the supplied CSR. Conflicts with all other flags and arguments except -install and -cert-file.
注:これらのオプションはドメイン名リストの前に配置する必要があります。
mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
指定された名前の 1 つが電子メール アドレスである場合、mkcert は S/MIME 証明書を自動的に生成します。
mkcert [email protected]
モバイル デバイスで証明書を信頼するには、ルート CA をインストールする必要があります。これは、 mkcert -CAROOT
によって出力されるフォルダー内のrootCA.pem
ファイルです。
iOS では、AirDrop を使用するか、CA を自分に電子メールで送信するか、HTTP サーバーからサービスを提供できます。開いたら、[設定] > [ダウンロードされたプロファイル] でプロファイルをインストールし、完全な信頼を有効にする必要があります。
Android の場合、CA をインストールしてから、アプリの開発ビルドでユーザー ルートを有効にする必要があります。この StackOverflow の回答を参照してください。
ノードはシステム ルート ストアを使用しないため、mkcert 証明書を自動的に受け入れません。代わりに、 NODE_EXTRA_CA_CERTS
環境変数を設定する必要があります。
export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
CA 証明書とそのキーは、ユーザー ホームのアプリケーション データ フォルダーに保存されます。インストールは自動化されているため、通常は心配する必要はありませんが、場所はmkcert -CAROOT
によって出力されます。
個別の CA を管理する場合は、環境変数$CAROOT
使用して、mkcert が配置するフォルダーを設定し、ローカル CA ファイルを検索できます。
トラスト ストアへのインストールには CA キーは必要ないため、CA 証明書をエクスポートし、mkcert を使用して他のマシンにインストールできます。
mkcert -CAROOT
でrootCA.pem
ファイルを探します。
別のマシンにコピーします
$CAROOT
そのディレクトリに設定します
mkcert -install
を実行します
mkcert は本番環境ではなく開発目的であるため、エンド ユーザーのマシンでは使用しないでください。また、 rootCA-key.pem
エクスポートまたは共有しないでください。