Bedava SSL Sertifikası “Let’s Encrypt” Kurulumu

14
4747

Merhaba değerli sunucu heveskarları. Google’ın blogunda yapmış olduğu seo ile ilgili açıklamasından sonra internet tarayıcımızdaki adres çubukları hızla yeşil olmaya başladı. Yani http protokolü https (Güvenli Bağlantı Protokolü) ye dönüşmeye başladı. Bunun sebebiyse Google SSL kullanan sitelere sıralama ve seo açısından öncelik vereceğini belirtmesiydi.

Peki terimsel olarak nedir bu SSL?

SSL (https://) : SSL (Secure Socket Layer) web siteniz ile web sitenizi ziyaret eden kullanıcılar arasındaki veri iletişiminin şifrelenmiş olması ve bu şifrenin onaylanmış ve garanti altına alınmış olduğunu gösteren bir sertifikadır.

Bu sertifikaları satan bir çok site var fakat en ucuz satan ve kaliteli hizmet veren SSLS.COM u öneririm.

Konumuza dönecek olursak bundan 6 ay kadar önce takip etmeye başladığım Let’s Encrypt ‘i dün o12.org ‘da kullanmaya başladım. Sitesinden detayları incelemedim fakat bedava olduğunu anasayfadan da anlamak mümkün. İlk etapta bana 4 aylık geçerli bir sertifika sağladılar sonrasında otomatikte olabilir manuelde bunu bilmiyorum sertifikalar yenilenecek anladığım kadarıyla.

ucretsiz-ssl-kurulumu-1

ucretsiz-ssl-kurulumu-2

Gördüğünüz gibi güvenlik soketi aktif olarak çalışmakta. Şimdi sizlere bu ücretsiz sertifikayı sitemize nasıl kullanırız nasıl aktif ederiz onu iki farklı webserver üzerinde anlatacağım. Öncelikle sistemin hala beta aşamasında olduğunu belirteyim. Tam dökümanı okumaya fırsatım olmadığı için normal hosting kullanıcılarının bu sistemden faydalanıp faydalanamayacaklarını bilmiyorum. İncelemek isterseniz Bu Link ten detaylara ve Buradan da soru ve cevaplara bakabilirsiniz. Ben sunucusu kendisine ait olanlar için yani vps,vds,dedicated server sahiplerinin bu sistemi nasıl kuracaklarının anlatacağım.

İlk olarak CentOS 6.7 x64 işletim sistemi üzerinde kurulu Plesk panelli web sunucusunda sertifika sistemini çalıştırıp sitelerimiz için ücretsiz SSL edineceğiz.

ucretsiz-ssl-kurulumu-3

ucretsiz-ssl-kurulumu-4

Resimlerden de anlayacağınız üzre internetin.org alan adım için ücretsiz bir SSL sertifikası yükleyeceğiz.

ucretsiz-ssl-kurulumu-5

Hali hazırda bir sertifikamız bulunmadığı için https protokolünün çalışmadığı uyarısını alıyoruz.

Hazırsanız SSL kurulumuna başlayalım. Kurulum oldukça basit. Orjinal anlatım dökümanı için Linke gözatabilirsiniz.

İlk olarak sunucumuza SSH Terminal bağlantısı sağlıyoruz ve root olarak giriş yapıyoruz.

ucretsiz-ssl-kurulumu-6

Sunucuya giriş yaptıktan sonra yapmamız gereken ilk işlem Apache ve Nginx servislerini durdurmak. Bunun için sırasıyla aşağıdaki komutları uygulayalım.

service httpd stop

service nginx stop

ucretsiz-ssl-kurulumu-7

Sonra kurulum için aşağıdaki komutları sırasıyla uygulayalım.

yum install git -y

git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt

./letsencrypt-auto --help

ucretsiz-ssl-kurulumu-8

ucretsiz-ssl-kurulumu-9

ucretsiz-ssl-kurulumu-10

Şimdi hangi sitemiz için sertifika oluşturacaksak ona göre aşağıdaki komutu değiştirin.

./letsencrypt-auto certonly --standalone -d example.com -d www.example.com

Ben internetin.org için oluşturacağım.

./letsencrypt-auto certonly --standalone -d internetin.org -d www.internetin.org

Komutu uyguladığınızda tekrar aynı çıktıyı alacaksınız tekrar aynı komutu –debug tagıyla uygulayalım.

ucretsiz-ssl-kurulumu-11

Hata alacağız sırf bu hatayı gösterebilmek için sıfırdan plesk kurdum değerinizi bilin :). Aldığımız hata şöyle:

ucretsiz-ssl-kurulumu-12

python-virtualenv yüklü olmadığı için böyle bir hata aldık. Yüklemeyi deneyelim fakat yüklenmeyeceğine bahse girebilirim.

yum install python-virtualenv -y

ucretsiz-ssl-kurulumu-13

Geleceğimi görüyorum ne 🙂 Şaka tabiki daha önce kurduğum için biliyorum, sizlerinde karşılaştığınız bir sorunda çaresiz kalmanızı önlemek için aşama aşama en ince detayına kadar iniyorum. Peki nasıl yükleyeceğiz bu zımbırtıyı? En kolay yolu uygulayalım aşağıdaki komutla epel kütüphanesini içeri alıp aynı yükleme komutunu yeniden uygulayalım.

rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

yum install python-virtualenv -y

ucretsiz-ssl-kurulumu-14

ucretsiz-ssl-kurulumu-15

Başımıza bela olan virtualenv i sistemimize ekledik. Artık oluşturamadığımız sertifikamızı oluşturabiliriz.

./letsencrypt-auto certonly --standalone -d example.com -d www.example.com --debug

Örnek:
./letsencrypt-auto certonly --standalone -d internetin.org -d www.internetin.org --debug

ucretsiz-ssl-kurulumu-16

ucretsiz-ssl-kurulumu-17

ucretsiz-ssl-kurulumu-18

ucretsiz-ssl-kurulumu-19

Evet kurulumu tamamladık belirttiğimiz site için 4 aylık ücretsiz sertifikamızı oluşturdu ve dizini bize verdi. Ayrıca 4 ay sonra yeniden sertifika oluşturabileceğimiz iletide yazıyor.

Şimdi yapmamız gereken dosyaları bulunduğu dizinden almak ve plesk panelimizin SSL yükleme bölümünden yüklemek.

ucretsiz-ssl-kurulumu-20

cert.pem sertifika dosyamız, privkey.pem adından da anlaşıldığı gibi private key dosyamız ve fullchain.pem chain(CA Bundle) dosyamız. Bu üç dosyayı panelimize yükleyeceğiz. Peki bu dosyaları bilgisayarımıza nasıl alacağız?

Sunucuya sftp bağlantısı sağlayalım root bilgilerimizle.

ucretsiz-ssl-kurulumu-21

/etc/letsencrypt/live/internetin.org dizinine gidip dosyaları bilgisayarımıza indirelim.

ucretsiz-ssl-kurulumu-22

İndirdikten sonra plesk panelimize dönelim.

ucretsiz-ssl-kurulumu-23

ucretsiz-ssl-kurulumu-24

ucretsiz-ssl-kurulumu-25

İndirdiğimiz dosyaları Sertifikayı karşıya yükle diyerek içeri alalım.

ucretsiz-ssl-kurulumu-26

SSL mizi kullanmaya başlamak için yapmamız gereken son iki işlem kaldı.

Plesk Panelimizden ilgili site için barındırma ayarlarından SSL sertifikamızı seçip uygulayalım.

ucretsiz-ssl-kurulumu-27

Son olarakta ilk başta kapattığımız webserimizi aşağıdaki komutlarla yeniden başlatalım.

service httpd start

service nginx start

ucretsiz-ssl-kurulumu-28

Artık sitemize giriş yaparak SSL yi kontrol edebiliriz.

ucretsiz-ssl-kurulumu-29

ucretsiz-ssl-kurulumu-30

Evet SSL sertifikamız sorunsuz ve tamamen ücretsiz olarak çalışmakta. Hayırlı olsun. Bu güzel projeyi yapan destek veren emeği geçen herkese şahsım adına teşekkür ederim.

Thanks a lot ! “Let’s Encrypt” Good work.

Forumlarda gezerken sunucu ve bilhassada Linuxe olan ilginizi gördükçe bilgim dahilinde birşeyler öğretmeye çalışıyorum. Çok sık olmasa da vakit buldukça makaleler yazıyorum. Fakat şunu da söylemeden edemeyeceğim. Değerli takipçilerim ! Server ve Linux dünyası öylesine büyük bir okyanustur ki ne kadar öğrenirseniz öğrenin hep dahası vardır. Bu bağlamda bir vps veya benzeri sunucu alıp bir panel kurduktan sonra forumlarda kendinizi linux uzmanı ilan etmeyin bu benim sizlerden şahsi ricamdır. Bildiğinizi ve tecrübelerinizi elbette paylaşın ancak Linuxu ve server yönetimini böylesine aşağı çerçeveye indirgemeyin.

Bir sonraki makalemde ham LAMP sunucuda aynı kurulumu gerçekleştirip manuel ayarlamaları anlatacağım. Görüşmek üzere. AKDNZ

  • Doruk

    Ücretsiz ve faydalı makalelerin org uzantılı sitenin hakkını veriyorsun, eline sağlık

    • Teknograph

      Kıymetli görüşlerin ve yorumun için ben teşekkür ederim Doruk.

  • Pingback: cPanel: Lets Encrypt Bedava SSL Kurulumu | o12.org()

  • Pingback: VestaCP: Lets Encrypt Bedava SSL Kurulumu | o12.org()

  • Ahmet EREN

    Selamlar ,

    Yazdığınız makale için öncelikle ellerinize ve emeğinize sağlık kişisel web siteme kurmak istediğimde ” Failed to connect to host for DVSNI challenge” şeklinde hata almaktayım DNS yönetimi kısmın CloudFlare’de bulunuyor. Ufak bir araştırma yaptım ama maalesef ki işin içerisinden çıkamadım , konu hakkında desteğiniz ile kuracağıma inanıyorum, şimdiden değerli yanıtınız için teşekkürlerimi sunuyorum.

    • Teknograph

      Merhaba, kullandığınız sunucuya dair yazılım bilgisini ve ne kullandığınızı iletin lütfen. SNI hatası shared IP hatasına benziyor.

      Scripti sorunsuz kurup sertifikayı sorunsuz oluşturdunuz mu? Bu hatayı hangi aşamada alıyorsunuz?

      • Ahmet EREN

        CentOS 6.7 x86 – Apache , Plesk 12 kurulu. /letsencrypt-auto certonly –standalone -d alanadim.com.tr -d http://www.alanadim.com.tr –debug
        komutu uyguluyorum ve “Requesting root privileges to run letsencrypt…
        /root/.local/share/letsencrypt/bin/letsencrypt certonly –standalone -d ahmeteren.com.tr -d http://www.ahmeteren.com.tr –debug
        /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of cryptography will drop support for Python 2.6
        DeprecationWarning
        Version: 1.1-20080819
        Version: 1.1-20080819
        Traceback (most recent call last):
        File “/root/.local/share/letsencrypt/bin/letsencrypt”, line 9, in
        load_entry_point(‘letsencrypt==0.4.2’, ‘console_scripts’, ‘letsencrypt’)()
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/cli.py”, line 1993, in main
        return config.func(config, plugins)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/cli.py”, line 707, in obtain_cert
        _, action = _auth_from_domains(le_client, config, domains, lineage)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/cli.py”, line 475, in _auth_from_domains
        lineage = le_client.obtain_and_enroll_certificate(domains)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/client.py”, line 269, in obtain_and_enroll_certificate
        certr, chain, key, _ = self.obtain_certificate(domains)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/client.py”, line 252, in obtain_certificate
        return self.obtain_certificate_from_csr(domains, csr) + (key, csr)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/client.py”, line 225, in obtain_certificate_from_csr
        authzr = self.auth_handler.get_authorizations(domains)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/auth_handler.py”, line 84, in get_authorizations
        self._respond(cont_resp, dv_resp, best_effort)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/auth_handler.py”, line 142, in _respond
        self._poll_challenges(chall_update, best_effort)
        File “/root/.local/share/letsencrypt/lib/python2.6/site-packages/letsencrypt/auth_handler.py”, line 204, in _poll_challenges
        raise errors.FailedChallenges(all_failed_achalls)
        FailedChallenges: Failed authorization procedure. http://www.ahmeteren.com.tr (tls-sni-01): urn:acme:error:tls :: The server experienced a TLS error during domain verification :: Failed to connect to host for DVSNI challenge, ahmeteren.com.tr (tls-sni-01): urn:acme:error:tls :: The server experienced a TLS error during domain verification :: Failed to connect to host for DVSNI challenge

        IMPORTANT NOTES:
        – The following errors were reported by the server:

        Domain: http://www.ahmeteren.com.tr
        Type: tls
        Detail: Failed to connect to host for DVSNI challenge

        Domain: ahmeteren.com.tr
        Type: tls
        Detail: Failed to connect to host for DVSNI challenge

        To fix these errors, please make sure that your domain name was
        entered correctly and the DNS A record(s) for that domain
        contain(s) the right IP address. Additionally, please check that
        you have an up-to-date TLS configuration that allows the server to
        communicate with the Let’s Encrypt client.

        Hatasını alıyorum

        • Teknograph

          Merhaba, sunucuda root olarak mı oturum açtınız?

          python ve virtualenv i kurdunuz mu?

          Notlar kısmında DNS kayıtlarınızda hata olduğunu söylüyor cloudflareyi kapatıp sertifikayı oluşturmayı deneyin. Şunu da önceden belirteyim cloudflare business hesap sahibi değilseniz kendi ssl nizi kullanamazsınız. Free hesapta sadece arkaplanda kullanabilirsiniz. Full SSL (Strict) seçeneğiyle.

          Daha detaylı anlayabilmeniz için linke bakınız.
          https://www.cloudflare.com/ssl/

  • Osman Dağdeviren

    Nerede bu hata :/

    • Teknograph

      Merhaba, yorumları neden parça parça yapıyorsunuz? bu şekilde yorum yaparsınız yorumlarınız onaylanmayacaktır.

      Sorununuza gelince işletim sisteminiz nedir ve 32bit mi? 64bit mi?

      Bildirin lütfen.

      • Osman Dağdeviren

        centOS 6.7 64 bit.

        • Teknograph

          Buradaki anlatımda CentOS 6.x 64bit içindi, python-virtualenv epel kütüphanesinden çıkarılmış olabilir.

          yum install python -y

          komutunu uyguladıktan sonra tekrar uygular mısınız? Eğer sonuç alamazsanız sunucu bilgilierini admin@o12.org ‘ a gönderirseniz yardımcı olabilirim.

          İyi çalışmalar.

  • sigorta.net.tr

    merhaba, sertifikanın süresimi var acaba geçen gün hic bir sorun yaşamadan girebiliyordum.
    https://www.sigorta.net.tr/ şimdi sertifika hatası veriyor.

    • Teknograph

      Merhaba aynı işlemleri yeninden tekrarlayarak yeni bir sertifika elde edebilirsiniz.