■Apache‎ > ‎

SSLの利用(認証局SSL)

商用の場合は、認証局に署名してもらって運用すると思いますが
結構お金かかりますよね。。。(年数万円ぐらい)
まぁ、個人なら自己証明で十分かと思いますが('~')
CAcert.orgだったら無償で利用できますが
ブラウザーが対応していないので警告がでるのと
半年に一回更新する必要があります。
あと、日本語訳のページもあるのでわかりやすいかと思います。

■OpenSSLのインストール
こいつが無いと始まらないのでここからDownLoadしてきます。
$ wget URL
$ tar zxvf xxx.tar.gz
$ cd xxx
$ ./config
$ make
$ make test
# make install     

インストール先を指定しない場合
/usr/local/sslにインストールされます。

■Apacheの変更
$ ./configure --enable-module=so \
--with-ssl=/usr/local/ssl --enable-ssl
$ make
# make install
# /usr/local/apache2/bin/httpd -l    
 

mod_ssl.c が表示されればOK

■鍵の作成・秘密鍵
# cd /usr/local/etc/apache2
# mkdir ssl
# cd ssl
# /usr/local/ssl/bin/openssl genrsa -rand /var/log/messages \
-des3 -out ./server.key 1024
※パスフレーズを聞かれますので忘れないように。
・CSR
# /usr/local/ssl/bin/openssl req -new -key ./server.key \
-out ./server.csr

Country Name (2 letter code)[AU]: 国
State or Province Name (full name)[Some-State]: 都道府県名称
Locality Name (eg, city)[]: 市区郡町村名
Organization Name(eg, company)[Internet Widgits Pty Ltd]: 組織名称(会社名など)
Organization Unit Name (eg, section)[]: 組織内名称(部門名など)
Common Name (eg, your name or your server's hostname)[]: 管理者またはサーバの名称
Email Address []: 管理者の電子メールアドレス
     

これで、server.keyとserver.csrが出来たと思います。
# chmod 600 server.key
一応ね。

■CAcert.orgへ登録
CAcert.orgにアクセスし登録を行います。
※アカウント登録が必要

完了すればkeyがいただけます。

# vi server.crt
 -----BEGIN CERTIFICATE-----
から
 -----END CERTIFICATE-----
まですべてをコピペ。


■自己署名証明書でよければ
#/usr/local/ssl/bin/openssl x509 -in server.csr \
-out server.crt -req -signkey server.key -days 365     



■ssl.confの修正
# vi /usr/local/apache2/conf/ssl.conf
ほとんどそのままでいいのですが
DocumentRootとか自分の環境に合わせて修正SSLCertificateFile ・・・
 ↓
SSLCertificateFile /usr/local/apache2/ssl/server.crt

SSLCertificateKeyFile ・・・
 ↓
SSLCertificateKeyFile /usr/local/apache2/ssl/server.key     


■起動
#/usr/local/apache2/bin/apachectl startssl
パスフレーズ入れたら立ち上がって、ブラウザーから
https://~ でアクセスして見れればOK

■自動起動さすには?
Apache立ち上げる度にパスフレーズきかれるので
うぜーって思う人は
# cd /usr/local/apache2/ssl
# mv server.key server.key.org
# /usr/local/ssl/bin/openssl rsa -in server.key.org -out server.key