自己署名証明書の作成:localhostとローカルIP向け
このツールは、ローカルサイトで使う名前から、開発用サーバーにそのまま使える証明書と秘密鍵を作ります。処理はすべてブラウザー内で行われ、アップロードも保存もありません。最後に server.crt と server.key を1つのZIPでダウンロードできます。
自己署名証明書の作成方法:localhost・ドメイン・IP向け
入力した名前はすべてSubject Alternative Name(SAN)の一覧に入ります。最近のブラウザーが確認するのはこの一覧です。設定したり貼り付けたりするものはありません。
鍵ペアはブラウザーのWebCryptoで作られ、証明書もこのページ上で組み立てて署名されます。
オレオレ証明書の作成手順
- ドメインとIPアドレスの欄を確認してください。最初は
localhost, 127.0.0.1が入っています。使う名前に置き換えるか、追加してください。例:localhost, 127.0.0.1, 192.168.1.5 - 必要なら設定を開き、有効期間(日)やRSA鍵のサイズを変更してください。
- 証明書を生成を押してください。短い証明書を生成しています…の表示のあと、証明書の準備ができましたと表示されます。
- ZIPをダウンロードを押してください。
local-ssl-certificate.zipに server.crt(証明書)と server.key(秘密鍵)が入っています。 - お使いのパソコンで信頼するを見ながら server.crt をパソコンの信頼ストアに追加し、2つのファイルでサーバーを設定してください。
- 名前や設定を変えたいときは名前や設定を変更を押して、もう一度生成してください。
ドメインとIPの入力例
入力はカンマ、スペース、改行で区切ってください。各項目はDNS名かIPアドレスかが自動で振り分けられます。
localhostやdev.example.testのようなホスト名*.example.testのようなワイルドカード(サブドメイン1階層に一致します)192.168.1.5のようなIPv4と::1のようなIPv6(角かっこの有無は問いません)- アクセント付き文字や日本語などを含む名前(自動でpunycode、つまり xn-- の形に変換されます)
1つの証明書に入れられる名前は最大50件です。入力するのはホスト名かアドレスだけにしてください。https:// などのスキームやポート番号を付けた項目は受け付けられず、エラーに無効だった項目が表示されます。ブラウザーのアドレスバーに入れる名前は、証明書にある名前のどれかと一致している必要があります。一致しないと、ブラウザーは警告を出し続けます。
設定:有効期間と鍵のサイズ
有効期間には1〜397日を指定でき、初期値は365日です。範囲外の数値は最も近い上限か下限に直されます。証明書は生成した瞬間から有効で、結果の有効期限に終了日が表示されます。期限が切れたら、新しく生成してください。
RSA鍵のサイズの初期値は2048ビットで、高速でどこでも受け入れられます。より大きな鍵が必要なら4096ビットを選べますが、作成に数秒かかることがあります。
結果には対象(すべての名前)、有効期限、鍵、SHA-256フィンガープリントが表示されます。証明書はX.509バージョン3の自己署名で、自身の鍵でSHA-256 with RSAにより署名されます。コモンネームは最初に入力した項目ですが、ブラウザーが読むのはSANの一覧です。シリアル番号はランダムです。
自己署名証明書を信頼する:Windows・Mac・Linux
信頼ストアに追加するまで、ブラウザーは自己署名証明書に警告を出します。ZIPを展開し、そのフォルダーでターミナルを開いて、お使いのOS向けのコマンドを実行してください。コマンドはお使いのパソコンで信頼するの下にもコピーしやすい形で表示されます。
- macOS:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain server.crt - Windows(管理者権限のPowerShell):
Import-Certificate -FilePath .\server.crt -CertStoreLocation Cert:\LocalMachine\Root - DebianとUbuntu:
sudo cp server.crt /usr/local/share/ca-certificates/server.crtのあとにsudo update-ca-certificates - FedoraとRHEL:
sudo cp server.crt /etc/pki/ca-trust/source/anchors/のあとにsudo update-ca-trust
Firefoxは独自の一覧を持っており、LinuxのChromeも同様です。そちらの「設定」「証明書」「認証局」から server.crt をインポートしてください。開発ツールの中にも独自の一覧を持つものがあります。その場合は、ツール自身の設定で server.crt を指定してください。信頼したあとはブラウザーを再起動してください。
nginxとApacheで使う・鍵の扱い
Webサーバーの証明書の設定には server.crt を、秘密鍵の設定には server.key を指定し、サーバーを再起動してください。nginxでは ssl_certificate と ssl_certificate_key、Apacheでは SSLCertificateFile と SSLCertificateKeyFile です。そのあと、証明書にある名前のどれかで、先頭に https:// を付けてサイトを開いてください。
server.key は他の人に見せないでください。このファイルを持つ人は、あなたのローカルサイトになりすませます。公開リポジトリにコミットしないでください。このツールはローカル開発専用です。自己署名証明書を公開Webサイトで使わないでください。
よくある質問
localhostの自己署名証明書はどうやって作りますか?
「ドメインとIPアドレス」の欄に最初から入っている localhost, 127.0.0.1 のまま「証明書を生成」を押し、続けて「ZIPをダウンロード」を押してください。server.crt と server.key が手に入ります。ローカルのWebサーバーにその2つのファイルを指定し、server.crt をパソコンの信頼ストアに追加すると、ブラウザーの警告が消えます。
IPアドレス向けの証明書も作れますか?
作れます。「ドメインとIPアドレス」の欄に 192.168.1.5 のようにアドレスを入力してください。IPv4もIPv6も使え、[::1] のように角かっこで囲んだ形にも対応しています。各IPは証明書にIPアドレスの項目として書き込まれ、https://192.168.1.5 を開くときにブラウザーが確認するのはこの項目です。入力するのはアドレスだけで、https:// やポート番号は付けないでください。
自己署名証明書のSANはどう設定しますか?
入力した名前は自動でSubject Alternative Nameになります。ドメインはDNS名、IPアドレスはIPアドレスの項目として入るので、設定や貼り付けは不要です。結果の「対象」に、入った名前がすべて表示されます。コモンネームには最初の項目が入りますが、ブラウザーが読むのはSANです。
ワイルドカードの自己署名証明書は作れますか?
作れます。*.example.test のようなワイルドカードを入力すると、DNS名として追加されます。ワイルドカードが一致するのは1階層だけで、*.example.test は app.example.test には使えますが、example.test そのものや a.b.example.test には使えません。必要なら example.test を別に入力してください。
オレオレ証明書の作成にOpenSSLは必要ですか?
必要ありません。鍵ペアはブラウザー標準のWebCryptoで作られ、証明書もこのページ内で組み立てて署名されるため、実行するコマンドもインストールするものもありません。OpenSSLが要るのは、できたファイルをあとで別の形式に変換したい場合だけです。
WindowsやMacで自己署名証明書を信頼するにはどうしますか?
Windowsでは、PowerShellを管理者として開き、ファイルを展開したフォルダーで Import-Certificate -FilePath .\server.crt -CertStoreLocation Cert:\LocalMachine\Root を実行してください。ChromeとEdgeが読む信頼されたルート証明機関のストアに証明書がコピーされます。Macでは、server.crt のあるフォルダーで sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain server.crt を実行してください。
UbuntuとFirefoxで信頼するにはどうしますか?
DebianとUbuntuでは、server.crt を /usr/local/share/ca-certificates/ にコピーして sudo update-ca-certificates を実行してください。curlなどのコマンドラインツールはこれで受け入れます。Firefoxはシステムの信頼ストアを使わないため、設定の「証明書」から「認証局」タブを開き、server.crt をインポートして、Webサイトの識別を信頼するオプションにチェックを入れてください。
PFXファイルやCSR、Let's Encryptの証明書は作れますか?
作れません。このツールが作るのは、PEM形式の自己署名証明書1つ(server.crt と server.key)です。証明書署名要求(CSR)、認証局が署名した証明書や公開用の証明書、別個のルートCAは作りません。PFXが必要な場合は、OpenSSLのpkcs12コマンドでこの2つのファイルから作れます。
おすすめ
-
エレコム スマホスタンド 三脚 卓上https://192.168.x.x を開いて動作確認するスマホを、机の上に立てておけます。
-
暗号技術入門 第3版TLS と証明書の仕組みを、鍵と署名の基礎から腰を据えて学べる一冊です。
-
ロジクール Webカメラ C920nカメラ機能の確認には HTTPS が必要です。実機のWebカメラで本番さながらに試せます。
無料でツールを続ける支えになります。✨
画像はイメージです。 Amazonのアソシエイトとして、Capsule Toolsは適格販売により収入を得ています。