purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

一つのグローバルIPで複数のSSLサイトを動作させる

基本的に

SSLを利用する場合はドメインの数だけグローバルIPが必要

テスト、ステージング環境があると

もう3倍もIPが必要になるという事になる。

一つのIPで複数のSSLサイトを動作させたい

Server Name Indication を使う

Apacheのバージョン2.2.12からサポート
ただwindows XPのIE8以前が対応していないため実用的ではない

http://ja.wikipedia.org/wiki/Server_Name_Indication

単一のサーバで複数枚のサーバ証明書を使い分けるには名前ベースバーチャルホストは利用できず、ホスト名ごとに異なるグローバルIPを使う必要があった(IPベースバーチャルホスト)。

つまり、基本一つのApacheには一つの証明書しか使えないわけだ

ということでワイルドカードSSL

こことか
https://crosstrust.co.jp/service/enterprise_ssl_for_cloud/wildcard
こことか
http://valuessl.net/products/rapidsslwc.php
で見ると

  • IE5.5以上
  • その他のブラウザ

で問題なく動くようで、十分実用レベル

ワイルドカードじゃないかもけど

ワイルドカードの要領かな?これで、オレオレだし証明書の警告は出るが実装上SSLが使える
自分でVPSで作った時のメモ

opnen sslssl実装 キーを作る

# su -
# cd /root/
# yum -y install openssl-devel

# cd /etc/pki/tls/certs/
# openssl genrsa -out turbine.bz.key.pem 2048
# openssl req -new -x509 -days 3650 -key exsample.com.key.pem -out exsample.com.cert.pem
※-days指定により3650日=約10年有効


ssl.conf

<VirtualHost 111.111.111.111:443>
    SSLEngine on
    SSLCertificateKeyFile /etc/pki/tls/certs/exsample.com.key.pem
    SSLCertificateFile /etc/pki/tls/certs/exsample.com.cert.pem
    ServerAdmin webmaster@exsample.com
    DocumentRoot /usr/home/others/s.exsample.com/secure
    ScriptAlias /cgi-bin/ "/usr/home/others/s.exsample.com/secure/cgi-bin/"
    ServerName s.exsample.com.exsample.com
    CustomLog /usr/home/others/s.exsample.com/log/ssl-access_log combined env=!worm
    ErrorLog /usr/home/others/s.exsample.com/log/ssl-error_log
</VirtualHost>

<VirtualHost 111.111.111.111:443>
    SSLEngine on
    SSLCertificateKeyFile /etc/pki/tls/certs/exsample.com.key.pem
    SSLCertificateFile /etc/pki/tls/certs/exsample.com.cert.pem
    ServerAdmin webmaster@exsample.com
    DocumentRoot /usr/home/others/m.s.exsample.com/secure
    ScriptAlias /cgi-bin/ "/usr/home/others/m.s.exsample.com/secure/cgi-bin/"
    ServerName m.s.exsample.com.exsample.com
    CustomLog /usr/home/others/m.s.exsample.com/log/ssl-access_log combined env=!worm
    ErrorLog /usr/home/others/m.s.exsample.com/log/ssl-error_log
</VirtualHost>