• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オレオレクロスルート証明書の作成方法)

オレオレクロスルート証明書の作成方法

このQ&Aのポイント
  • オレオレでクロスルート証明書を作成する方法について
  • 中間認証局の署名に関する問題とベリサインのクロスルートの実現方法
  • opensslを使用してオレオレクロスルート証明書を作成する手順

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

まず、クロスルート証明書を一言で説明すると、Root認証局(1)と同じ公開鍵を持つ中間ルート証明書となる。すなわち、 【構成イメージ】 Root認証局(1)(2048bit オレオレ) (A)      Root認証局(2)(1024bit、オレオレ) (B) ↓                             ↓ ↓                             ↓ 中間認証局(Root認証局(1)で署名) (C) ←←クロスルート証明書(Root認証局(2)で署名) (D) ↓ ↓ サーバ(中間認証局で署名) (E) の構成イメージの中で、(A)と(D)は同じ公開鍵を持っているわけだ。だから、(C)の署名は(A)で行い、(D)で行う必要はない。 で、なんでそれでOKかというと、サーバ証明書からの信頼のチェーンは(E)→(C)→(A)と(E)→(C)→(D)→(B)の順に各証明書に対して署名した署名者の公開鍵をたどっていくからだ。(C)に署名した(A)の公開鍵がas;klasdpfoiawjhepmiahweだとすると、(D)も同じas;klasdpfoiawjhepmiahweを持っているため、(C)の証明書を信頼しようとしているWebブラウザなどは(C)に署名した公開鍵as;klasdpfoiawjhepmiahweを持つ別の証明書を探し、そうすると(A)と(D)が見つかるからそれぞれさらに親をたどっていく。(A)はそこで終了だが、(D)はさらにその親に(B)が居るので、Webブラウザが(A)か(B)のどちらかを信頼していれば(E)は信頼されたとすることができる。 くりかえしになるが、あなたが(D)に対してしなきゃいけない事は(A)と公開鍵を合わせる事と(B)に署名される事の2つ。 で、公開鍵が同じという事は秘密鍵も同じという事。(A)の秘密鍵からcsrを作ってそれを(A)で自己署名していると思うので、そのcsrを(B)に署名してもらえば(D)の出来上がりのはずだ(多分)。あるいは同じ秘密鍵から中間証明書用の別のCSRを作るって(B)に署名してもらうのかも知れない。 QAサイトの性質上筋違いなお願いとなってしまうが、これは興味深い実験なのでぜひやってみてその結果を私にも教えて欲しい。

jaro001
質問者

お礼

anmochi様 jaro001です。実験してみたところ、無事に10124bit、2048bitどちらも認証出来ました!!!ありがとうございます。 【こんな感じに設定したらうまくいきました】※備忘録も兼ねて (構成イメージ) (A) (B) ↓ ↓ (C)←←(D) ↓ (E) (A) Root認証局(1)(2048bit オレオレ) root2048.key root2048.csr root2048.crt(root2048.keyで署名(オレオレ)) (B) root1024.key root1024.csr root1024.crt(root1024.keyで署名(オレオレ)) (C) inter.key inter.csr inter.crt(root2048.keyで署名) (D) cross.key(root2048.keyをコピー) cross.csr(root2048.csrをコピー) cross.crt(root1024.keyで署名) (E) server.key server.csr server.crt(inter.keyで署名) ※keyとcsrはopenssl reqで作りました。

関連するQ&A