php7系でcomposer installするとOpenSSL Error

症状

php5.6のCentOSサーバーでcomposer installしようとしたら下記エラーがでた。

[Composer\Downloader\TransportException]                                                                                           
  The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:  
  error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed                                                  
  Failed to enable crypto                                                                                                            
  failed to open stream: operation failed

ググったところ、仮想マシンの再起動や、php.iniファイルに
openssl.cafile=/etc/ssl/certs/ca-bundle.crt

を追記すると治るケースがあるという情報がありましたがどちかも解決しませんでした。

改善した方法

結果下記で改善されました。

$ sudo yum install ca-certificates

※nginxやphp-fpm等の再起動も反映には必要かもしれません。

その後 composer installが通るようになりました。


curlやwgetでhttpsにアクセスすると拒否られる対処

〜s certificate, issued by 〜 Unable to locally verify the issuer’s authority.

〜の検証に失敗しました: 発行者の権限を検証できませんでした〜

とでる場合は、

http://d.hatena.ne.jp/hogem/20120705/1340284071
こちらを参考にさせて頂きました!
うまいぼうblogさんありがとうございます1

CentOSの場合はこちらで対応できたのですが、 FreeBSDは、

ルート証明書インストール
#pkg install security/ca_root_nss
シンボリックリンクを貼る
#ln -s /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem

※pkg install等パッケージ管理ソフトを別ものなど利用している場合は、ソースインストール等、
別の方法とる。

下記のようなエラーがでる場合

asn1 encoding routines:ASN1_item_verify:unknown message digest algorithm

opensslのバージョンが古い事が問題なので、
opensslのバージョンを上げる。

OpenSSLのバージョン確認
$ sudo rpm -qa | grep openssl

OpenSSLアップデート
$ sudo yum update opensll openssl-devel