本文へスキップ
ecdsa.com

自己署名証明書

発行者とサブジェクトが同一で、自身の秘密鍵で署名された証明書です。そのため、トラストアンカーとしてインストールされた環境でのみ信頼されます。
別表記self signed certificateself-signed certsnake-oil certificate

ルート CA 証明書はすべて自己署名です。信頼されたルートと「自己署名証明書」エラーの違いは、検証者がその証明書をストアに持っているかどうかだけです。自己署名のサーバー証明書は受動的な盗聴に対しては暗号化を提供しますが、クライアントがピンニングするかインストールしない限り、認証にはなりません。そのため、ブラウザーは NET::ERR_CERT_AUTHORITY_INVALID を表示し、ツールは self-signed certificate と報告します。

開発用には、自己署名のリーフ証明書を個別に使うより、ローカルのプライベート CA(mkcert、step-ca、または数個の OpenSSL コマンド)のほうが適しています。ルートを 1 つインストールすれば、ホストごとに SAN を含む正規の証明書を発行できます。自己署名証明書を使えるようにするために、コードで検証を無効にしてはいけません(verify=False、rejectUnauthorized: false、InsecureSkipVerify)。

便利なコマンドは openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes -keyout key.pem -out cert.pem -days 30 -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1" です。

規格と参考文献

すべての用語