CA/証明書の作成
CA.pl は openssl-perl をインストールするとついてくる。
yum install openssl-perl
作業用ディレクトリにコピー
# cp /etc/pki/tls/misc/CA.pl CA.pl
出力ディレクトリを変更する
vi CA.pl
$CATOP="./CA";
同じく
vi /etc/pki/tls/openssl.cnf
[ CA Default ]
dir = "./CA"
perl CA.pl -newca # CAの作成
perl CA.pl -newreq-nodes # 証明書作成。パスフレーズいらない(-newreqでパスフレーズつき)
perl CA.pl -signreq # 署名する
perl CA.pl -pkcs12 # パッケージ化する。IEはこれで生成された newcert.p12 を読み込ませる
証明書作成する場合はCommon Nameが重要(でも暗号化するだけだったらそこまで意味は成さないのかも)
apacheの設定
標準のssl.confの一部を変えればOK。
SSLCertificateFile
->newcert.pem
SSLCertificateKeyFile
->newkey.pem
SSLCACertificateFile
->CA/cacert.pem
ってやるとこんなエラーがでました
(Firefox) SSL received a record that exceeded the maximum permissible length.
(Opera) Opera はサーバーに接続できませんでした。サーバーは、サポートされていない SSL 2 プロトコルを使用している可能性があります。このプロトコルは、保護された通信を行う十分な安全性があると見なされていません。サイトの所有者は、TLS 1.0 以降にアップグレードする必要があります。
解決策
NameVirtualHostにポート指定してないかららしい。たしかに。全VirtualHostファイルを書き換えないといけなかったので大変だった。
NameVirtualHost 11.22.33.44
↓
NameVirtualHost *:80
複数ドメイン運用はリバースプロキシを使う
443なVirtualHostが複数あると起動時に警告がでて設定が効かない。mod_rewriteのリバースプロキシで設定してやる
例えばこんなん
RewriteEngine On
RewriteCond %{HTTP_HOST} ^hoge\.example\.com
RewriteRule ^(.*)$ http://hoge.example.com/$1 [L,P]
...
参考
http://moca.wide.ad.jp/notes/ca_doc/openss...
http://lab.hde.co.jp/2008/08/opensslperlca...
http://vine-linux.ddo.jp/linux/mail/ca_id.php
http://www.piyosystems.com/kuki/B206043570...
http://kikuz0u.x0.com/memo/hiki.cgi?%A5%D7...(%A5%AA%A5%EC%A5%AA%A5%EC%C7%A7%BE%DA%B6%C9%A4%CE%BA%EE%C0%AE)%A1%A1%A1%C1+CA.pl+%CA%D4+%A1%C1
http://park15.wakwak.com/~unixlife/practic...
http://d.hatena.ne.jp/a666666/20090211/123...
Apacheクックブックも役に立った