ブログ

スポンサーサイト

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

apacheにSSL入れる

(apache2.0)
SSLを動的モジュールとして組み込む。
./configure --enable-modules=so --enable-mods-shared=max --enable-ssl
make
make install
↑DSO有効にして、標準の動的モジュールを全部入れて、SSLも入れる。

apacheのconfディレクトリにssl.confが出来てる(たしかそのハズ)。
httpd.confでこれを読み込むようにすれば終了。
Include conf/ssl.conf
↑それっぽいところに追加

おしまい
スポンサーサイト
  1. 2005/09/26(月) 18:51:00|
  2. Apache
  3. | トラックバック:0
  4. | コメント:0

perlからpostgresqlにアクセス(2)

(postgresql7.4.8 perl5.8.5)

DBIインストール

DBD::Pgインストール

サンプル書いて

おつかれさま

DBI、DBD::Pgインストール
root@ # perl -MCPAN -e 'install DBI'
root@ # perl -MCPAN -e 'install DBD::Pg'

おしまい。自分の場合はDBD::Pgのインストールときに
「/usr/lib/libpq.so.3がない」と怒られたので、
シンボリックリンク張ってインストール再開。
root@ # ln -s /usr/local/pgsql/lib/libpq.so.3.1 /usr/lib/libpq.so.3
root@ # perl -MCPAN -e 'install DBD::Pg'

perlサンプルコード
載せようと思ったけどめんどい

  1. 2005/09/13(火) 18:42:40|
  2. Perl
  3. | トラックバック:0
  4. | コメント:0

perlからpostgresqlにアクセス(1)

postgresql7.4.8 インストール

postgresユーザ作成
root@ # adduser postgres
root@ # passwd postgres
root@ # ******
root@ # ******

ソース展開
root@ # chmod +x postgresql-7.4.8.tar.gz
root@ # tar -zxvf postgresql-7.4.8.tar.gz

いつもの
root@ # cd ../postgresql-7.4.8/
root@ # ./configure
root@ # make
root@ # make install

できたファイルのオーナ&グループ変更
root@ # cd /usr/local/
root@ # chown -R postgres pgsql/
root@ # chgrp -R postgres pgsql/

ユーザ切り替え
root@ # su - postgres
root@ # *******

環境変数設定
postgres@ # vi ~/.bash_profile
----------------.bash_profile------------------------
PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$PGLIB
--------------------------------------------------

更新して確認
postgres@ # source ~/.bash_profile
postgres@ # printenv

DB初期化(文字コード設定+OSのlocateDBを使わない設定)
     (後者を忘れるとDBクラスタ壊れるかもらしい)
postgres@ # cd /usr/local/pgsql/bin/
postgres@ # initdb --encoding=EUC_JP --no-locale
postgres@ # cd ../data/

バックアップ取っとく
postgres@ # cp postgresql.conf postgresql.conf.org
postgres@ # cp pg_hba.conf pg_hba.conf.bak

TCPアクセス設定とログの設定
postgres@ # vi postgresql.conf
------------postgresql.conf---------------------
tcpip_socket = true
-----------------------------------------------

アクセス制限の設定(必要なら)
postgres@ # vi pg_hba.conf
-----------pg_hba.conf------------------------------
host all all 127.0.0.1 255.255.255.255 trust
----------------------------------------------------

postmaster起動
postgres@ # cd ../bin/
postgres@ # ./pg_ctl -w start

動いてる
postgres@ # psql -l
List of databases
Name | Owner | Encoding
-----------+----------+----------
template0 | postgres | EUC_JP
template1 | postgres | EUC_JP
(2 rows)


  1. 2005/09/13(火) 15:45:11|
  2. Perl
  3. | トラックバック:0
  4. | コメント:0

apache2でphp5設定

(apache2.0.54 php5.0.5)

phpのソースダウンロード
http://www.php.net/

展開
tar zxvf php5.0.5.tar.gz
cd php5.0.5


インストール
(上からapxsのパス指定、マルチバイト、マルチバイト正規表現、
 SJISで書ける、postgresqlのなにか、mysql使わない)
vi opt-configure
----------- opt-configure ------------
#!/bin/sh
./configure \
--with-apxs2filter=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--enable-mbregex \
--enable-zend-multibyte \
--with-pgsql=/postgres \
--without-mysql
-------------------------------------
perl opt-configure
make
make install


PHP初期設定ファイルを配置
cp php.ini-dest /usr/local/lib/php/php.ini


apacheの設定ファイルに追加。
モジュール読んで、拡張子がphpとphtmlのファイルをphpで
パースする設定。あとついでにphpのソースも。
vi /usr/local/apache2/httpd.conf
------------httpd.conf---------------
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
-------------------------------------


確認用のphpファイルを作る
vi /usr/local/apache2/htdocs/test.php
------------test.php---------------
<?php phpinfo();?>
-------------------------------------


apache再起動
/usr/local/apache2/bin/apachectl restart


ブラウザから(http://hostname/test.php)にアクセスして
phpの情報が出ればお疲れさま。
  1. 2005/09/13(火) 15:16:04|
  2. Apache
  3. | トラックバック:0
  4. | コメント:0

CPANスゲエェ

# perl -MCPAN -e shell
感動した!!便利すぎ!
  1. 2005/09/09(金) 15:50:52|
  2. Perl
  3. | トラックバック:0
  4. | コメント:0

SSLの鍵方式

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

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

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

gladiator

半年遅れでやっと大学を卒業できた。今回の卒業発表の掲示を確認するとき、半年前に見に行ったときの数十倍は緊張した。だって前回は望みを持つことすら叶わない単位数だったし、今もう仕事始めちゃってるし・・。これで卒業できなかったら仕事のほうはどうなっていたことやら。ホントよかった。
さようなら学校。未練も思い出も特になし!(4年半、面白いことは全部学校の外だったなァ・・バイトとかバイトとか)

職場が近いからたまにご飯食べには行くけどね。安くて多くて美味くないあのメニューを・・。
  1. 2005/09/08(木) 17:42:03|
  2. その他
  3. | トラックバック:0
  4. | コメント:1

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

ssl設定したあとのapacheの起動

(apache2.x)
DSOでSSLを組み込んだapacheを起動するときに、
# ./apachectl start
とするとSSLなしのapacheが起動される。SSLつきで起動するには
# ./apachectl startssl
で起動する。んで、確認してみる。
# netstat -pln |grep httpd
tcp 0 0 :::80 :::* LISTEN 5160/httpd
tcp 0 0 :::443 :::* LISTEN 5160/httpd
80 と 443 ポート出てれば動いてる(んだろうと思う)。

ついでになんとなく、start と restart でもSSLつきで起動するように、apachectl の中身を書き換えてみた。(80行目ぐらい)
case $ARGV in
start|stop|restart|graceful)
$HTTPD -k $ARGV
ERROR=$?
;;
startssl|sslstart|start-SSL)
$HTTPD -k start -DSSL
ERROR=$?
;;
case $ARGV in
stop|graceful)
$HTTPD -k $ARGV
ERROR=$?
;;
restart)
$HTTPD -k restart -DSSL
ERROR=$?
;;
start|startssl|sslstart|start-SSL)
$HTTPD -k start -DSSL
ERROR=$?
;;
なんとなくやってみたかっただけ。特に便利になった気にはならないけど、書き換えてる最中はなんかコンピュータやってる感が出る。それだけ。
(スタティックにSSLを組み込んだ場合は知らない。同じだと思うけど。)
  1. 2005/09/08(木) 16:20:09|
  2. Apache
  3. | トラックバック:0
  4. | コメント:0
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。