最近、家に帰ってから1日1時間くらいずつ使って、趣味のサイトを作っています。そこにOAuth APIを作りこもうと思っていて、そのためにHTTPSで通信できる必要がありました。
そこで、mod_sslの設定をしたので、その記録です。
ほとんど設定済みだった
実際のところ蓋を開けてみたら、さくらVPSはmod_sslがインストール済みで、ほとんど設定もされていました。最初からhttpsでアクセスしても自己証明書でSSLを利用することができました。
今回は、証明書を購入したので、それを設定するのがゴールです。
以下を参考にしたので、ディレクトリ構造とかはこのサイトにならいます。
SSLサーバ証明書のインストール(Apache 2.x + mod_ssl + OpenSSL)
証明書と秘密鍵を置く
安全な場所であればどこでも良いですが、証明書と秘密鍵を置きます。秘密鍵はCSRを発行する時に生成したものです。
sudo mkdir /etc/httpd/conf/ssl.crt
sudo vim /etc/httpd/conf/ssl.crt/example.com.crt
sudo vim /etc/httpd/conf/ssl.crt/cacert.crt
sudo mkdir /etc/httpd/conf/ssl.key
sudo vim /etc/httpd/conf/ssl.key/example.com.key
scpとかで転送しても良いですが、テキストデータなのでペタペタ貼っていきました。
さくらVPSの初期状態の証明書などは /etc/pki/tls/certs/ の中に置いてあったので、ここに置いても良いと思います。
ls /etc/pki/tls/certs/
Makefile ca-bundle.crt ca-bundle.trust.crt localhost.crt make-dummy-cert server.key
ssl.confの設定
あとはApacheの設定を記述していきます。
sudo vim /etc/httpd/conf.d/ssl.conf
具体的には、以下の”SSLCertificateXxxFile”という設定の3行を探して、自分で置いた証明書や秘密鍵のパスを指定します。
SSLCertificateFile /etc/httpd/conf/ssl.crt/example.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/example.com.key
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/cacert.crt
あとついでにバーチャルホストの設定も変更しました。
DocumentRoot /var/www/example.com/
ServerName example.com
ServerAlias example.com www.example.com
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
その他、HTTPSのポートで接続した場合の設定を記述しますが、ここでは割愛します。
再起動して完了
あとはApacheを再起動させれば設定完了です。
sudo /etc/init.d/httpd restart
ちゃんとブラウザに鍵マークがついて一安心。
今回はValue SSLで一番安い証明書買いましたが、必要に迫られたら別のも考えます。支払いまで2週間くらいの猶予があるので、試しに入れてみるのもアリだと思います!
それでは、良いSSL生活を!
コメント