ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

SSLの鍵方式

SSLでメッセージを暗号化する際に使われているのは共通鍵方式か公開鍵方式のどっち?

公開鍵方式で共通鍵を交換して、そのあとは共通鍵方式でやってると思ってた。でも、いろいろな説明サイト見てると、公開鍵方式のみでやってるみたいなことが書いてあるところも。

結局どっちなの。どっちなのかによって何が変わるわけでもないけどハッキリしておきたい・・。 [SSLの鍵方式]の続きを読む
スポンサーサイト
  1. 2005/09/09(金) 14:19:27|
  2. SSL
  3. | トラックバック:0
  4. | コメント:0

opensslでプライベートキーを作って、証明書署名要求を作って、自分で鍵に署名する

(openssl 0.9.7a)
目標:自己証明書を作ってSSL通信ができるようにする。
1.プライベートキーの生成
2.証明書署名要求の生成
3.勝手に鍵に署名する

今回は、自分の鍵に自分で署名して信頼してくれという証明書を作る。証明能力はゲーセンで作れる名刺以下だけど、動きが分かればそれでいい。
ちゃんと証明しようと思ったら、2.でできた署名要求を認証局(CA)に(十分なお金と一緒に)送りつけて、署名されて帰ってきた証明書を使う。細かい手順は認証局のページに書いてある(とおもう)から書かない。というかやったことないから分からない。
頭の中で、「こっちはサーバ管理者側の仕事、こっちは本当はCA側の仕事」と分けて考えると意味が分かりやすい(気がする)。

1.プライベートキーの生成
秘密鍵を作る。公開鍵暗号方式で使用する対になってる鍵の片方。なくしちゃダメ。また作ればいいんだけど、鍵という名前の付くものは失くすと大概いやな目に遭う。自分の家に入れなかったり。
# openssl genrsa -out hogehoge.key 1024
hogehoge.key という名前の、 1024バイトのデータをランダムの元にした秘密鍵ができる。そしたら次はそれを使って署名要求を作る。

2.証明書署名要求の生成
この鍵に署名してくれと要求するためのファイルを作る。誰に対しての要求? ほんとはCA。今回は自分。
# openssl -new -key hogehoge.key -out hagehage.csr
これで hagehage.csr というファイルができ・・ない。いろいろ聞かれる。国はどこか、組織名は何か、サーバ名は何か、などなど。面倒くさいけど「私はこういう人間(組織)だ」というファイルを作っているのでしょうがない。適当に住所はmoonにした。
これをCAに送って「こいつはマジで信頼できる・・」となれば署名されて帰ってくるんだけれど、住所にmoonとか書いてるからダメ。

3.勝手に鍵に署名する
# openssl x509 -req -days 365 -in hagehage.csr -signkey hogehoge.key -out oreore.crt
↑一行でかいてOK。これでoreore.crtというファイルができた。これが証明能力がゼロの立派な自己署名証明書。

ここまでで出来たファイルは3つ。
hogehoge.key
hagehage.csr
oreore.crt

csrはcrt作るためのものだからもう要らないと思うけど、一応取っとく。(あとで何かに必要なんて言われてまた作ろうと思っても、質問に適当に入力しすぎて二度と再現できそうにないし、面倒くさいから)

あとはapacheのhttpd.confとかssl.confにそれっぽい記述のところがあるから、さっき作ったファイル名に直せばOK。

apacheでSSL設定し終わったらブラウザで見てみる。
https://~~で見ると、間違いなく「信頼されていない証明書です」みたいな警告のダイアログが出る。原因は住所がmoonになってるからじゃなくて、ブラウザに証明書がインポートされていないから。信頼に足る(大手の?)CAの証明書は、最初からブラウザにインポートされていて、それと照合して信頼できるかどうかを確認しているため。
警告を出さないようにするには証明書をブラウザにインp

面倒くさくなってきたんでヤメ。続きはそのうち
  1. 2005/09/08(木) 17:24:56|
  2. SSL
  3. | トラックバック:0
  4. | コメント:0
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。