phpのfile_get_contens()関数で引数のURLがhttpsの場合、以下のエラーが出る環境があります。
その対応としてopensslをインストールしたので、そのメモです。
opensslのインストール
参考)http://memorva.jp/memo/linux/openssl.php
ここからソースをDL http://www.openssl.org/
$ tar xzvf openssl-1.0.0e.tar.gz
$ cd openssl-1.0.0e
# ./config -fPIC shared
# make
# make test
# make install
なぜか./configもmakeも permisionで怒られたので、以降rootで実行しました。
php連携
–with-openssl オプションをつけてインストールし直します。
参考)http://www.php.net/manual/ja/openssl.installation.php
$ make
$ make test
# make install
./configure時に権限のエラーが起きたのでrootで実行してます。
また、make test時にphpインストールしたときと同じエラーがでましたが、ssl関連では出てないようだったので、スルーします。
動作確認
apacheを再起動してからphpinfoを見てみます。
認識されてますね。
先ほどエラーが出たスクリプトを再度実行してみると、エラーは出なくなりました。
(以下、2011/02/09 追記)
SSLの設定
ここを参考にしました。
http://www.server-memo.net/server-setting/apache/apache-mod_ssl.html
実際の作業は整理後追記予定。(以下追記)
関連ファイル保存用にフォルダを作成。
$mkdir ssl.key
$cd ssl.key
鍵やら証明書やら作成。パスワードの設定もあります。
#chmod 400 server.key
#openssl req -new -key server.key -out server.csr
#chmod 400 server.csr
#openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
#chmod 400 server.crt
続いてapacheの設定で、ssl.confに以下を追記します。
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key SSLCertificateFile /etc/httpd/conf/ssl.key/server.crt
で、apache再起動
# /usr/local/apache2/bin/httpd -k start
パスワードを聞かれるので、先ほど設定したパスワードを入力します。これで、完了。
自動起動のためのパスワード解除
このままだと、サーバreboot時などで、apache再起動時にパスワード問い合わせのため、apache起動できません。そのためセキュリティリスクは高まりますが、運用性を重視してパスワードを解除します。
# mv server.key server.key_org
# openssl rsa -in server.key_org -out server.key
先ほど設定したパスワードを入力
再びapache再起動してパスワードを聞かれないか確認
# /usr/local/apache2/bin/httpd -k start
聞かれなければこれでOKです。
Pingback: Apache SNI « minor tranquilizer