さくらVPSでmod_sslの設定

最近、家に帰ってから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生活を!

コメント

タイトルとURLをコピーしました