ブログ移転のお知らせ

独自ドメインのVPSにブログ移転中です、ここもデータの保証無しってことで置きっぱなしにしてもらえる事になってます。
 
i移転先予定のブログURLはこちら(作成中):http://www.sawanoboly.net/wp/
旧ブログはこちらでも保管しときます:http://www.sawanoboly.net/wp_old/
前の記事:«
次の記事: »

前回の記事の中で少しだけ言及した、opensslコマンドで自己証明書のキーペアを作成する方法。
ちなみにSSLv3/TLS対応で、IISで使える形式も作れます。
 
事前にキーペアを作成する手順を簡単にまとめておきます、結構この流れは社内でも新人さんとかよく迷うので。
そう複雑ではないのですけどね。

  1. サーバの秘密鍵を作成する
  2. 秘密鍵を基にして証明書要求(CSR)を発行する
  3. CSRにサーバ秘密鍵を使いまわして署名、証明書作成
  4. サーバ秘密鍵+証明書でキーペア完成、CSRはもういらない
要は同じ公開鍵が作れる秘密鍵と証明書の2つがあればSSL通信を設定することができる、というわけですね。
有料の証明書サービスを使う場合は、手順2で作ったCSRを業者さんに渡して、証明書を作ってもらえばOK。

では手順のほうへ。
 

サーバの秘密鍵を作成する

トリプルDESで秘密鍵を作成します、これより弱い方式ではSSLv3になりません。
この方式で作成するときには秘密鍵を読み込むためのパスワード(パスフレーズ)を設定しなければなりません、適当なものを入力します。
※host.domain.keyはただのファイル名なので何でもよいです。

# openssl genrsa -des3 -out host.domain.key 1024

これで一応秘密鍵は完成ですが、パスフレーズが有効なままではなにかと不便です。
例えばhttpdを起動する際に毎回パスフレーズの入力を求められるなど、運用上で致命的な問題が。
よってパスフレーズを無効にします、一度パスフレーズの入力が必要です。

# openssl rsa -in host.domain.key -out host.domain.key

秘密鍵は一応大事なので、パーミッションを400にするなど少し漏洩には気をつけます。

memo:
以降の作業でWindows版の場合は、「OPENSSL_CONF」環境変数が設定されていないとエラーになるケースがある、
デフォルトでよいので設定しておく。
/// コンフィグファイルを環境変数に設定
> set OPENSSL_CONF={opensslのインストールパス}openssl.cnf

 

証明書要求(CSR)を作成する

ここでの入力内容は前回の記事と一緒です。
※host.domain.csrはただのファイル名なので何でもよいです。

# openssl req -new -key host.domain.key -out host.domain.csr

斜体はサーバからの問い合わせ、太字が入力例なのでコモンネームに気をつけて各自適当に。
実際はもう少し続きますが、これ以降は全部空白でエンター押してかまいません。

Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Hyogo
Locality Name (eg, city) [Newbury]:Kobe-shi
Organization Name (eg, company) [My Company Ltd]:iCRAFT Ltd.
Organizational Unit Name (eg, section) []: (部署名、無記入でもOK)
Common Name (eg, your name or your server’s hostname) []:hogehoge.example.com
(コモンネーム、SSL証明書を適用するサーバのFQDNを書きましょう)
Email Address []:(省略可)
 
CSRができました、一応下記のコマンドで内容を確認してみてください。
# openssl req -text -in host.domain.csr
# openssl req -subject -in host.domain.csr

 

要求に署名する

仕上げは自己署名です、-daysオプションは有効期限を今日から数えて何日にするか指定します。
サンプルでは3650日間、10年間有効ですね。
※host.domain.crtはただのファイル名なので何でもよいです。

# openssl x509 -req -days 3650 -sha1 -in host.domain.csr -signkey host.domain.key -out host.domain.crt
2009/01/06 チョイ修正:デフォルトのmd5は脆弱だということでsha1を使うように変更、いわゆるsha2は使えないのかな?

有効期限の上限ですが、西暦1万年を超えなければ大丈夫だった気がします。
 
 

これでキーペア完成、慣れたらopensslコマンドで色々遊んでみましょう、
基本は「入力フォーマットと読むファイル」、「出力フォーマットと出力先」を指定するだけのコマンドですが、
色々と面白い出力が得られます。
 
 


おまけ:IISにインポートできる形式(pk12)にする

apacheなら上記のセットがあればSSLもOKなのですが、
Windowsでは秘密鍵ごと格納する、「証明書ストア」と呼ばれるPKIの管理機能を持っています。
IISでのSSLに、上記の証明書を使い対場合は、使える方式に変換してあげる必要があります。
 
この方式ではエクスポートの際にパスワードを設定し、インポートする際はパスワード照合を行います、
パスワードの入力を促されるので、忘れないようして設定します。
※host.domain.p12はただのファイル名なので何でもよいです。

# openssl pkcs12 -export -in host.domain.crt -inkey host.domain.key -out host.domain.p12

完成したファイルはIISで直接インポート可能です。

前の記事:«
次の記事: »

この投稿に関連した記事

.
add to hatena hatena.comment (9) add to del.icio.us (0) add to livedoor.clip (1) add to Yahoo!Bookmark (0) Total: 10

使ってる所とか

※注意

I
KOBE×
BUSINESS.

これは個人ブログです、内容についてアイクラフト(株)は責任を負いません。
にほんブログ村 IT技術ブログへSawanoblogのフィード
人気ブログランキングへ
この日記のはてなブックマーク数
はてなRSSに追加
Googleに追加
My Yahoo!に追加
livedoor Readerに追加
goo RSSリーダーに追加
フィードメーター - SawanoBlog.
MCP
MCTS
CCNA

ミニブログとか

あわせて読みたいブログパーツ
  • ZFS上のiSCSIターゲットをサイズ変更、ディスクを拡張して使う(Linux ext3編)
    画像:ext3ファイルシステム拡張


    CactiからWindowsの情報を、ありものだけでグラフ化してみる
    画像:大きさ注意グラフ(627 × 9067)


    アイクラフトで新人歓迎会、焼肉で活躍祈念@神戸三宮
    写真:焼肉ー


    Monitでサービス・プロセス監視、止まったら勝手にリスタート(4)
    画像:MonitのWEB管理画面


    神戸市の「子ども参観日」を本社で、花火観賞を本社から
    写真:当日の神戸の様子


    Windowsのバッチファイル、.bat, .cmd どっちを使うか
    図:batファイルのプロパティ
  • Amazon用