S eda1a14b50ee24bcab19b62f40858e76 LinuxのApacheでSSL

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クックブックも役に立った

もしかして

    他の人の「LinuxのApacheでSSL」

    S eda1a14b50ee24bcab19b62f40858e76

    無所属ソフトウェアエンジニア

    (1722words)

    最新

      最新エントリ

        関連ツイート