Nedir?

Ruby’de net/http kütüphanesi içerisinde uzun zamandır süregelen SSL sertifikasında TLS el sıkışması sırasında varsayılan olarak geçerlilik kontrolü yapılmaması sorunu var. Sorunun altında yatan nedenle uğraşmak yerine (bulunamayan sertifika yetkilisi, imzalı sertifika vb.) insanlar kötü yamalarla uğraşıyorlar. Bu da bizi şöyle bir probleme doğru sürüklüyor.

Rails Installer içerisindeki OpenSSL kütüphanesinde herhangi bir sertifika yetkilileri dosyası tanımlı değil. O halde, gidip curl sitesinden bu dosyayı alalım.

Peki en nihayetinde bunu Ruby için yaptığımıza göre neden indirip kurma işini de Ruby’e bırakmıyoruz?

Kurulum

Ruby ile (zevkli yöntem)

Bu yöntem bilgisayarınızda Rails Installer‘ın kurulu olduğunu varsayar.

Aşağıdaki Ruby betiğini Masaüstü klasörünüze kaydedin. https://gist.github.com/raw/867550/win_fetch_cacerts.rb.

Komut satırında bu betiği aşağıdaki gibi çalıştırın:

ruby "%USERPROFILE%\Desktop\win_fetch_cacerts.rb"

Sonrasında Ruby’nin bu sertifika yetkilileri dosyasından haberdar olması için SSL_CERT_FILE değişkenini tanımlayın.

Bunu yapmak için komut satırında aşağıdaki komutu çalıştırın:

set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

Bu değişikliği kalıcı hale getirmek için değişkeni kontrol paneli‘nden ortam değişkenlerine ekleyin.

Manuel olarak (sıkıcı yöntem)

cacert.pem dosyasını http://curl.haxx.se/ca/cacert.pem adresinden indirin. İnen dosyayı C:\RailsInstaller\cacert.pem yoluna kaydedin.

Ruby’nin bu sertifika yetkilileri dosyasından haberdar olması için SSL_CERT_FILE değişkenini tanımlayın.

Bunu yapmak için komut satırında aşağıdaki komutu çalıştırın:

set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

Bu değişikliği kalıcı hale getirmek için değişkeni kontrol paneli‘nden ortam değişkenlerine ekleyin.

Yazar ve Kaynak

Original gist: Download a cacert.pem for RailsInstaller by Fletcher Nichol