Vagrantでオレオレ証明書

Vagrant環境でSSLを使用して開発中のCakePHPのサイトに接続したい状況が発生したので以下の方法で対応しました。

1. mod_sslのインストール

$ yum install mod_ssl

opensslがインストールされていない場合は、こちらも必要。

2. オレオレ証明書の作成

$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr
$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

参考: オレオレ証明書をopensslで作る(詳細版)

3. ssl.confの設定変更

/etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key

設定の読み込み

$ service httpd configtest
$ service httpd reload

4. Vagrantfileにポートフォワーディング設定を追加

config.vm.network :forwarded_port, guest: 443, host: 443

5. VirtualHostの書き換え

NameVirtualhost *:443

<VirtualHost *:443>
    ServerName foo.bar.com
    DocumentRoot /var/www/html/foo.bar.com

    SSLEngine on
    SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
    SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
</VirtualHost>

Chromeで表示するには別の作業が必要になるので確認にはSafariを使用しました。

参考