CSR ジェネレーター

ブラウザー上で PKCS#10 証明書署名要求を生成します。新しい鍵を作成するか、既存の PKCS#8 秘密鍵をインポートし、Subject と SAN を入力して CSR をダウンロードできます。

リクエストオプション
証明書署名要求に含める鍵・Subject・SAN エントリを設定します。

Subject(識別名)

すべてのフィールドは省略可能ですが、ほとんどの CA は少なくとも Common Name を必要とします。

Subject Alternative Names

1 行に 1 エントリ、またはカンマ区切りで入力します。省略する場合はセクションを空欄にしてください。

生成された CSR
証明書署名要求をコピーまたはダウンロードします。新しい鍵を生成した場合は、生成された秘密鍵も合わせてダウンロードできます。
CSR はまだ生成されていません
フォームを入力して「CSR を生成」を選択してください。

CSR とは?

証明書署名要求(CSR)は、認証局(CA)が TLS 証明書やコード署名証明書を発行するために必要な小さな PKCS#10 文書です。鍵ペアの公開鍵、CA に証明してもらいたい身元情報(Subject)、DNS 名や IP アドレスなどの追加識別子(Subject Alternative Names、略して SAN)をまとめ、対応する秘密鍵で署名したものです。

このツールは Web Crypto API と @peculiar/x509 を使用して、CSR をすべてブラウザー内で構築します。鍵やリクエストに関するデータがサーバーに送信されることはありません。

このツールを使う場面

  • Let’s Encrypt・DigiCert・ZeroSSL・Sectigo などの公的 CA から TLS 証明書を申請する際に、CA のワークフローで独自の CSR の貼り付けを求められる場合。
  • ACME ベース・smallstep・EJBCA・AD CS などの内部認証局向けの CSR を、ホスト型フォームを信頼せずに生成する場合。
  • 既存の PKCS#8 PEM 鍵をインポートして新しい CSR のみに署名することで、同じ秘密鍵のまま証明書を再発行する場合。

フォームの入力方法

  • 鍵ソース — 新しい鍵ペアを作成するには「新しく生成」を、暗号化されていない PKCS#8 PEM 鍵を貼り付けるには「既存をインポート」を選択します。暗号化済みの鍵、レガシー形式の RSA PRIVATE KEY、および EC PRIVATE KEY ブロックは受け付けられません。使用前に openssl pkcs8 -topk8 -nocrypt で変換してください。
  • アルゴリズム — RSA は最も広い互換性を持つデフォルトの選択肢です。ECDSA は署名サイズが小さく、最新の CA や TLS クライアントで広くサポートされています。
  • Subject — ほとんどの公的 CA は Common Name 以外のフィールドを無視し、DNS の SAN リストを正式な識別子として扱いますが、プライベート CA では完全な DN が必要な場合があります。
  • SAN エントリ — 証明書でカバーしたいホスト名・IP アドレス・メールアドレス・URI を列挙します。1 行に 1 エントリ、またはカンマ区切りで入力してください。

注意事項

  • CSR とともに表示される秘密鍵はローカルで生成され、ブラウザー外には送信されません。タブを閉じる前に必ず保存してください。対応する秘密鍵がなければ、署名済み証明書は使用できません。
  • 公的 CA では、Common Name(または少なくとも 1 つの SAN エントリ)が検証可能な DNS 名である必要があります。IP アドレスの SAN は主に内部証明書向けです。
  • 生成された秘密鍵は暗号化されていません。保管前にパスフレーズを追加する必要がある場合は、openssl pkcs8 -in key.pem -topk8 -out key-enc.pem を使用してください。
  • サポートされているのは RSA(2048/3072/4096)と ECDSA(P-256/P-384/P-521)のみです。EdDSA はブラウザーおよび CA 間での対応が依然として一貫していないため、意図的に除外されています。