VagrantにopensslでSSLを利用できるように設定する。


SSLと非SSLではプログラム等の動作が異なるため、ローカル開発環境でもSSLでのテストを実行できる環境をopensslを使って構築しました。

Vagrantの仮想マシンにSSLを設定した時のメモです。

opensslのインストール

sudo yum install mod_ssl openssl

Complete!と出ればインストール成功です。

秘密鍵の生成

秘密鍵を鍵長を 2024bitで生成します。

openssl genrsa 2024 > server.key

作成したserver.keyからCSRを生成していきます。
色々と質問されますがあくまでテスト環境様なので適当でいいと思います。

openssl req -new -key server.key -out server.csr
Country Name (2 letter code) [XX]:JP //国
State or Province Name (full name) []:Tokyo //都道府県
Locality Name (eg, city) [Default City]:Shinjuku-ku //市区町村郡
Organization Name (eg, company) [Default Company Ltd]:Sample //組織名
Organizational Unit Name (eg, section) []://空でOK
Common Name (eg, your name or your server's hostname) []:sample.com //SSLを設定するホスト名
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []://空でOK
An optional company name []://空でOK
[vagrant@localhost ssl]$ 

これで秘密鍵「server.key」というファイルが生成されました。

サーバー証明書の作成

先ほど作成したserver.keyを使って、サーバー証明書を生成します。

openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt

これで証明書「server.crt」というファイルが生成されました。

apache2.2 SSLの設定

ssl.confを編集してSSLの設定をしていきます。

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

「SSLCertificateFile」「SSLCertificateKeyFile」の記述を探して、それぞれ先ほど作成した証明書のファイルまでのパス、秘密鍵のファイルまでのパスに書き換えて保存します。

SSLCertificateFile /etc/httpd/conf/ssl/server.crt //証明書のファイルまでのパス
SSLCertificateKeyFile /etc/httpd/conf/ssl/server.key //秘密鍵のファイルまでのパス

Apacheを再起動

SSLの設定ファイルの書き換えが済んだら、Apacheを再起動します。

service httpd restart

opensslでローカル開発環境でSSL

これでローカル開発環境でSSLを利用できるようになりました。

参考サイト
OpenSSL で SSL 自己証明書を発行する手順
Apache 2.2.* 系と OpenSSL での HTTPS の利用 – Linux サーバ認証 編

コメントを残す