Composer/OpenSSL Sertifika Hatası

Mac üzerine Composer kurdum. Paket kurmak istediğimde şöyle bir sertifika hatası veriyordu:

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Biraz araştırma yaptım. Sorun OpenSSL sertifikasından kaynaklanıyormuş. PHP’nin sürüm güncellemesinden sonra orataya çıkmış. Olmayan ingilizcemle ancak bu kadarını (doğru ya da yanlış) anlayabildim. Çözüm için epey uğraştım.

Evvela php.ini’den OpenSSL eklentisinin/uzantısının akif olup olmadığını kontrol ettim, aktifti. Sonra uzantının kullandığı sertifika dosyasını bulmam gerekti. Bunu da openssl_get_cert_locations() fonksiyonu ile elde ettim.
echo "<pre>"; print_r(openssl_get_cert_locations());

yazdıktan sonra

Array
(
    [default_cert_file] => /Applications/XAMPP/xamppfiles/share/openssl/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => /Applications/XAMPP/xamppfiles/share/openssl/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => /Applications/XAMPP/xamppfiles/share/openssl/private
    [default_default_cert_area] => /Applications/XAMPP/xamppfiles/share/openssl
    [ini_cafile] => 
    [ini_capath] => 
)

Sonucunu aldım. Yani sertifikanın /Applications/XAMPP/xamppfiles/share/openssl/cert.pem yolunda olması gerekiyordu. Ama yerinde yoktu. Olması gereken dizine sertifika dosyasını yüklemem gerekiyordu. Sırasıyla aşağıdaki komutları uyguladım:

cd /Applications/XAMPP/xamppfiles/share/openssl/
sudo curl http://curl.haxx.se/ca/cacert.pem -o cert.pem

Sonrasında Apache sunucusunu yeniden başlattım. Sonra da composer install komutuyla istediğim paketleri kurdum.

Mac’te wget olmadığı için alternatif olarak curl kullandım. Wget sistemde kurulu değilse curl http://site.com/dosya-adi -o yeni-dosya-adi şeklinde kullanılabiliyor.

Kolay gelsin.