GCS step1

全国のライブカメラを地図上に表記

 全国のライブカメラの位置です。 いろいろご利用ください。 https://www.google.com/maps/d/edit?mid=12xkj87OQ_G_CbWapzBhV-c4lc6CExdPl&usp=sharing

2013年3月14日木曜日

Apache for Windowsで暗号化接続にトライ!


さて今回はWindowsVistaHomeBasicに導入したApacheにSSL(暗号化)を施すよ!
これが大変だったんだ。理解するのに一週間はかかったよ。
大切なのはドキュメントをしっかり読むこととGoogle先生をよく使うこと!
さぁがんばってみよう!

このページはサーバーを立ててみたいが本当に初心者で外にいくつもある詳しい解説ページを見ても全く解らないという方を対象にした補足ページです。ですから外の解説ページをメインに此方を補助として利用してください。







予備知識

PATHを通そう!
>Apacheの設定は時にMS-DOSを利用する。しかしMS-DOSはそのままではプログラムを使えない場合がある。プログラムの場所がわからないんだよね。そこでその場所を教えてあげる。それがPATHを通すという行為だ。以下にPATHの設定方法が記載されている。それにあわせて行ってくれ!
参考ページ:https://jp.globalsign.com/support/faq/177.html
これを行うと常にそのコマンドを使えば参照してくれる。
>さてわざわざ設定せずともMS-DOSを起動してからPATHを通すこともできるそれが以下だ。
set PATH = %PATH%;目的のプログラムの場所(例えばC:\Apache2\binとか...)
これで一時的に利用できる。

カレントディレクトリが変わらない?
>時にMS-DOSにおいてcdとしてもカレントディレクトリが変わらない場合があります。そのときはcdのあとに/dを入れるといいようです。
参考ページ:http://blog.ohanasiya.net/?m=blog&eid=4a443967a958cd261e35e43d3c17c7f0a8dce586

レジストリってどうやっていじるの?
>[ファイル名を指定して実行]ウィンドウで[regedit]と打ってOKです。
参考ページ:http://www.papepopc.com/windowsvista/2008/01/post_104.html


参考ページ:http://earlgreyx.wordpress.com/repository/apache-22wind32-with-ssl-%E3%83%86%E3%82%B9%E3%83%88%E7%92%B0%E5%A2%83%E5%B0%8E%E5%85%A5%E3%83%8E%E3%83%BC%E3%83%88/
上記によればApacheでの暗号化は次の手順で行われるようだ!

1.秘密鍵を作成
2.署名要求を作成
3.サーバー証明を作成(公開鍵も同時作成)
4.httpd.confでSSLを使えるようにして、extra/httpd-ssl.confで秘密鍵とサーバー証明の場所を指定。
5.Windowsレジストリを修正。

こんな感じになってるみたいです。
おおむね上記のHPのやり方でできるんですが何せPCの環境はそれぞれ違うわけで覚えておいたほうがいい予備知識があります。
それは以下。

予備知識2

cd /D C:\Apache2\conf
set PATH = %PATH%;C:\Apache2\bin
>PATHについては上記予備知識で記載したとおり、cdについてはあえて変えなくてもいいが後に作った秘密鍵などはMS-DOSがカレントディレクトリにしている場所に保管されるので移動が必要。

openssl genrsa -rand charset.conv -out server.key 1024
>これはOpensslを呼び出してcharset.convを利用して秘密キーを作成してください。んで名前はserver.keyにしてくださいよって意味。ですからOpenSSLを起動した上で行わなくてもいい。

署名要求のCommon Name (eg, YOUR name) []:localhost_ssl ブラウザからアクセスする名前。IPアドレスでアクセスする場合はそのIPアドレスを入力する。
>外部からのアクセスの場合外部からのドメインネームまたはIPアドレスを入れるべきと思われる...

extra/httpd-ssl.confの修正
>小さく書いてありますが修正は必要ないようです。デフォルトでしていされているので間違いないようなので...ただし気になる場合はSSLCertificateFile "D:/~/Apache/conf/server.crt"などと記載されているので""の間をそのファイルがあるディレクトリに指定してください。

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

>とありますがこちらのほうがいいかもしれません  openssl req -config ..\conf\openSSL.cnf -new -key server.key > server.csr なお..\conf\openSSL.cnfの部分はopenSSL.confのある場所を指定してください。
参考ページ:http://thinkit.co.jp/cert/article/0706/3/7/2.htm

Common Name (eg, YOUR name) []:と<VirtualHost ~:443>の不適合によるアクセス不可
>上記二つがあっていない場合アクセスができないことがあるみたいです。 上記二つの設定は合わせましょう。error.logにこんなエラーが乗ります「[Thu Mar 14 03:30:32 2013] [error] [client IPアドレス ] Invalid method in request \x16\x03」

あっ因みに3項目目は二つの設定ファイルを設定するという意味。
これと...

extra/httpd-ssl.conf とはextraフォルダー
内のhttpd-ssl.conf
を設定するということです。


こちらも参考にどうぞ
http://www.sure-co.net/~onir/index.cgi?eid=68
http://www.aconus.com/~oyaji/www/apache_win_ssl_vista.htm こちらは大変詳しいです。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/702apachessl.html
http://www.adminweb.jp/apache/allow/


なお知っておいたほうがいい予備知識がもうひとつあります。

予備知識3

httpsのフロー
>
1.clientがserverのtcp 443 portに接続
2.serverは証明書と公開鍵をclientに送信
3.clientはserverの証明書を検証
4.検証できたら(or 警告が出ても無視すれば)共通鍵を生成し、serverの公開鍵で暗号化してserverに送信
5.serverは自身の秘密鍵を用いて、暗号化された共通鍵を復号
6.client - serverで暗号化のセッションが確立し、以降共通鍵で暗号化してHTTP over SSL通信が行われる (ここでURLとHTTPヘッダ、ボディが送られる)
参考ページ:http://d.hatena.ne.jp/hogem/20100307/1267977441

ブラウザの警告メッセージについての知識
>
参考ページ:https://www.dryout.co.jp/blog/programer/2010-04-26-browser-warning-with-ssl/
参考ページ:http://jutememo.blogspot.jp/2011/06/ssl.html


パケットキャプチャで本当に暗号化されているか確認
>
参考ページ:http://www.atmarkit.co.jp/fwin2k/win2ktips/857netmon3/netmon3.html
参考ページ:http://news.mynavi.jp/column/winserver/095/index.html
参考ページ:http://alt.st/142
参考ページ:http://www.excite.co.jp/News/it_biz/20120803/Cobs_ie_201208_windows-95-microsoft-network-monitor.html

【送料無料】Apache Webサー...
【送料無料】Apache Webサー...
価格:2,625円(税込、送料込)

0 件のコメント:

コメントを投稿