[Çözüldü] openssl ile ssl kurulumu

Başlatan muhammetfaik, 09 Aralık 2015 - 22:31:03

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

muhammetfaik

Comododan aldığım ssl serfitikasıyla siteme ssl kuracağım fakat cpanel olmadan ve siteye uzaktan bağlanmadan openssl ile aldığım serfitikaları nasıl kurarım.Bir çözüm yolu gösterebilirmsiniz ve cpanel ile diyelim kurmam gerekiyor cpaneli sitenin bulunduğu servera kurmak gerek değilmi

heartsmagic

Cpanel'e falan ihtiyaç yok, mesele kullandığın web sunucusunun yapılandırılmasında. Sertifika ayarlama meselesi genellikle benzerdir büyük ihtimalle, sadece Comodo'dan aldım dediğin için anlatımı da elindekine uysun, sertifika işlemleri de cuk otursun diye şurayı vereyim sana:

http://billpatrianakos.me/blog/2014/04/04/installing-comodo-positive-ssl-certs-on-apache-and-openssl/

Anlatım yeni güncellenmiş ve hem yeni sürüm Ubuntu'lar hem de Comodo'daki son değişiklikler için notlar var. İngilizce sorun olursa veya İngilizce değil ama teknik anlatım sorun olursa lütfen belirt biraz daha ayrıntı vermeye çalışalım. SSL meselesi haliyle önemli bir mesele. Bu arada sen de eline geçen sertifika dosyalarının isimlerini buraya aktarabilirsin.

Nginx kullanıyorsan olay biraz değişir ancak mantık aynı. Sertifika dosyaları düzenlenecek, web sunucusundaki site girişine SSL için ekleme yapılacak.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

muhammetfaik

#2
Hocam söz konusu kurulacak sisteme ssh ile bağlanmak gerek değil mi yada direk sunucunun kendisine gidip yani (sitenin bulunduğu sunucunun)  yani sadece ssh ile bağlanmak yetmezmi
Not:Sistem ngnix


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 10 Aralık 2015 - 21:53:54

Hocam makalede PositiveSSLCA.crt diye bir dosyadan bahsediyor fakat benim elimdeki dosyaların ismi şunlar

AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt
siteismi_com.crt

heartsmagic

Yani, bir şekilde hazırlanan sertifika dosyalarının sunucuya yerleştirilmesi gerekiyor. Uzaktan olacaksa tabi SSH daha doğrusu SCP en güzel yol olur. Kaldı ki zaten Nginx ayarları için de bir şekilde sunucuya müdahale gerekiyor. SSH iyidir yani :)

Dediğim gibi anlatımda esasında notlar var. Nginx için bir iki ufak değişiklikle kabaca anlatmaya çalışayım.
Senin elindeki sertifikaları şöylece birleştirmen gerekiyor:

cat siteismi_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > siteismi.com.bundle.crt

Sonrasında bunu ve sertifikayı almak için zamanında oluşturduğun anahtar dosyanı (.key ile biten) sunucuya akaracaksın. Ardından da Nginx'i yapılandıracksın. İlgili site için şöylece bir giriş olacak:

server {
listen 443;
server_name siteismi.com;

ssl on;
ssl_certificate /etc/nginx/ssl/siteismi.com.bundle.crt;
ssl_certificate_key /etc/nginx/ssl/siteismi.com.key;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

ssl_prefer_server_ciphers on;
}


Elindeki dosyaları oluşturma aşaması önemli ama, verdiğim örnekteki gibi yap. Son oluşan dosyanın adı da önemli haliyle. Suncuda dosyaları koyacağın yol da /etc/nginx/ssl/. Eğer site aynı zamanda 80 üzerinden de isteklere cevap verecekse yukarıdaki yapılandırmayı eklersin, yok 80 kullanmayacaksa zaten doğrudan bu şekilde bir yapı yeterli olur sanırım. Zaten ortada bir site varsa 80 yapılandırması hazırdır, bunu ekleyeceksin kısacası.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

muhammetfaik

#4
Hocam birincisi yukarıdaki server { ile başlayan  sistem dosyasının tam ismi ve yolu nedir ve elimdeki .crt dosyalarıyla bu .key dosyası nasıl oluşturuluyor ve .key dosyasını ve diğer tüm .crt leri  /etc/nginx/ssl/ bunun içine aktaracağım sanırım.Doğrumu anlamışmıyım hocam.Birde bu işlemden sonra sunucuyu tekrar başlatmam gerek sanırım apache şöyleydi service apache2 restart nginx de nasıl acaba

heartsmagic

Anahtarın çoktan oluşturulmuş olması gerekiyor:
https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/1/19/csr-generation-using-openssl-apache-wmod_ssl-nginx-os-x

Zaten bu oluşturma esnasında eline geçen .csr dosyası ile sertifika talebinde bulunuyorsun. Umarım .key dosyası güzelce bir yerlerde saklanıyordur.

Nginx tarafı için ilgili dosya en temel olarak şudur:
/etc/nginx/sites-enabled/default
Ancak, ilgili site için herhangi bir şekilde ayarlama yapılmış olabilir, örneğin:
/etc/nginx/sites-enabled/siteismi.com
gibi.

Nginx'in işlemleri de aynıdır:
service nginx restart

Fakat bu ayardan sonra yeniden yüklemek de iş görür, yeniden başlatmaya gerek yok yani:
service nginx reload
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

muhammetfaik

Anladığım kadarıyla elimde csr belgesi olduğuna göre söylediğin işlem zaten yapılmış sadece ben bu .key dosyası bana csryi veren arkadaşdan alıp sunucuda uygun dizine yerleştirip /etc/nginx/sites-enabled/siteismi.com isimli dosyadada belirtmem gerek

heartsmagic

Aynen öyle , anahtar dosyasını alacak, sertifika işlemlerini (birleştirme) tamamlayacak ve sunucuda ilgili dizine taşıyacak sonra da site için ayarlama yapacaksın. Bir önceki iletindeki soruyu kaçırmışım, dosyaları  /etc/nginx/ssl/  dizinine koyabilirsin. Dizin sana bağlı ama dışarıya bakmayan bir yer olması önerilir genelde.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

muhammetfaik

#8
Hocam ssh ile bağlandım sunucuya /etc/nginx dizinin altında ssl dizini yok bunu ben kendim oluştursam sıkıntı olmaz herhalde. Gene /etc/nginx/sites-enabled/default  dizinide yok /etc/nginx altındaki dosylar ve dizinler  şunlar
conf.d                  koi-win             scgi_params
fastcgi.conf            mime.types          scgi_params.default
fastcgi.conf.default    mime.types.default  uwsgi_params
fastcgi_params          nginx.conf          uwsgi_params.default
fastcgi_params.default  nginx.conf.default  win-utf
koi-utf                 plesk.conf.d


bu bahsetiğiniz dizinler yok gibi kendim oluşutursam hakeza ssl için tanıdım dosyasınıda kendim oluştursam server  {   ile başlayan

nasıl olur



Hocam birde not ssh ile ilk bağlandığım zaman /var/www/vhosts/siteismi.com diye dizinde varsayılanım.Söz konusu sunucuda haliyle 4 5 site daha var ve kök dizine geçebiliyorum fakat scp ile /etc/nginx dizinin altına bir dosya kopyalamak istediğimde  permisson denied hatası verdi
şimdiden çok teşekkürler

heartsmagic

ssl dizininin olmaması sorun değil, elle oluşturabilirsin. Ancak sites-enabled ve sites-available dizini yoksa muhtemelen üzerinde çalıştığın sunucu Redhat ya da bir Redhat türevidir, doğru mu? conf.d dizininin altında neler var? Bir yerlerde sanal konakların tanımlı olması lazım.

default olmayacak zaten senin dosya, farklı siteler varsa her biri için sanal konak ayarı yapılmıştır bir yerlerde söylediğim gibi. Ubuntu ile gelen paketlerimizde yukarıdaki iki dizin oluşturuluyor kendiliğinden, böylece bizler sanal konak ayarları yapıyor ardından sembolik bağ atarak etkinleştiriyoruz. Redhat tarafının nasıl yaptığını araştırman gerekiyor artık. İlgili siteye ait dosyayı bulunca ekleme yapacaksın SSL için sadece, zira dediğim gibi şu an 80 üzerinden ilgili ayarlar vardır.

scp ile bir dizine yazma meselesi için izin sorunu yapıyorsa, scp yapılan kullanıcının o dizine yazma hakkı yok demektir. Kaldı ki /etc/nginx dizinine root yazıp çizebilir sadece normal şartlar altında. Buna durumda root ile scp yapman lazım.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

muhammetfaik

#10
Evet sunucu redhat

conf.d/ altındakiler
ssl.conf  zz010_psa_nginx.conf


birde şöyle bir şey var https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-nginx-for-centos-6

heartsmagic

Sondan gidelim, oradaki anlatım kendi sertifikanı kullanman için. Siz bir sertifika makamından satın almışsınız zaten, onu kullanacaksınız sisteminizde.

Sunucuda Plesk panel mi kurulu, çıktılarda şimdi gözüme çarptı. Kabaca tekrar edeyim, sitelerin ayarlarını barındıran dosyalar neredeyse önce sunucuda onu bulman lazım. Yanlış anlama ancak bu iş neden sana düşmüş :) Hani sunucuyu kuran birileri vardır muhtemelen, az el atıversinler olaya.

Plesk etkinse hâlâ şuralarda olabilir dosyalar:
/var/www/vhosts/system/site_ismi/conf/
veya
/var/www/vhosts/site_ismi/conf/

Bir bakıver buralara.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

muhammetfaik

Çok zor değildir kaynaklara felan bakıp hallederim diye düşündüm o yüzden.

heartsmagic

Yok tabi cidden zor değil ancak az biraz sunucu üzerinde işlem yapabilmeni ister. Hani benim uzaktan gördüğüm o konuda da yeni sayılırsın. Yanlış anlama, forumdan ara ara yardım edebildiğimiz için zorluk yaşarsın diye söyledim bir önceki sözleri. Hani bu sana verilen bir iştir, aciliyeti vardır falan. Yine yardımcı olmaya çalışırız sana. Baktın mı ilgili dizinlere, var mı site ile ilgili dosyalar oralarda bir yerde?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

muhammetfaik

#14
Hocam  linuxda yeni sayılmam aslına bakarsanız normalde kendim uğraşarak hallederdim ama bir client bilgisayar değil sonuçta hata kaldırmaz  bir sunucu  yani deneme yanılma yönmeti  çok tehlikeli o yüzden böyle cahil gibi yazıyorum kusura bakma ve bu arada root yetkisinide aldım.

/var/www/vhosts/system/site_ismi/conf
altındaki dizinler ise httpd.conf      last_httpd.conf  nginx.conf      prev_month.found
httpd.conf.bak  last_nginx.conf  nginx.conf.bak  stat_ttl.conf


nginx.conf
   GNU nano 1.3.12             File: nginx.conf

#ATTENTION!
#
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.

server {
        listen site_ip:443 ssl;

        server_name site_ismi.com;
        server_name www.site_ismi.com;
        server_name ipv4.site_ismi.com;

        ssl_certificate             /usr/local/psa/var/certificates/cert-evzMD5;
        ssl_certificate_key         /usr/local/psa/var/certificates/cert-evzMD5;
        ssl_client_certificate      /usr/local/psa/var/certificates/cert-rPCoq1;

        client_max_body_size 128m;

        root "/var/www/vhosts/site_ismi.com/httpdocs/public";
access_log "/var/www/vhosts/system/site_ismi.com/logs/proxy_access_ssl_l$
        error_log "/var/www/vhosts/system/site_ismi.com/logs/proxy_error_log";

        if ($host ~* ^site_ismi.com$) {
                rewrite ^(.*)$ https://www.site_ismi.com$1 permanent;
        }

        location / {
                proxy_pass https://site_ip:7081;
                proxy_set_header Host             $host;
                proxy_set_header X-Real-IP        $remote_addr;
                proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header X-Accel-Internal /internal-nginx-static-locati$
                access_log off;
        }

        location /internal-nginx-static-location/ {
                alias /var/www/vhosts/site_ismi.com/httpdocs/public/;
add_header X-Powered-By PleskLin;
                internal;
        }

}

Hocam birde .htaccessden bir işlem varmış ama

heartsmagic

Sunucu üzerinde çalışmak tehlikelidir tabi, onu biliyorum da bu konu için yedek aldığın sürece sorun olmaz. Neticede paket kurulumu yapılmıyor, hayati bir bileşene el atılmıyor. Web sunucusu dosyalarını yedekleyip uygun saatlerde gönlünce deneme yanılma yapabilirsin. Baktın çalışmıyor yedekten dönersin, en fazla 10-20 saniye sürer kesinti. Ha, site banka siteleri gibi saniyelerin bile öneminin olduğu bir siteyse bilemem ama hiç sanmıyorum :)

Hatta Nginx için esas dosyayı dahi kullanmadan bir deneme gerçekleştirebilirsin:

nginx -t -c falanca.conf

Baktın yapılandırma dosyasında sorun yok, "reload" yaparsın. Baktın senin bileşenlerin tarafında sorun var, dediğim gibi aldığın yedeği tekrar yerine koyarsın.

Şimdi, paneller işleri karıştırıyor derken bunu söylemek istiyoruz genellikle. İnan standart Nginx veya Apache yapılandırması bu kadar dağınık ve karışık değildir. Tamam, dosya orada, içeriği de belli ama bak Plesk belgelendirmesi ne diyor:

http://download1.parallels.com/Plesk/Doc/es-ES/online/plesk-linux-advanced-administration-guide/index.htm?fileName=72064.htm

Kabaca, "Arkadaşım dokunma o dosyaya, zira sen yarın arayüzü kullandığında ezilecek o dosya yine. Elle eklememi yapacaksın, o zaman vhost_nginx.conf dosyasına yapmalısın" diyor. Bunun arayüz üzerinden yapılma imkânı da varmış, Plesk tarafında "Additional nginx directives" kısmı imiş orası da. Fakat sende vhost_nginx.conf dosyası görünmüyor ortalıkta.

find / -iname "vhost_nginx.conf"

komutu ne diyor? Kaldı ki bu dosyada yanlış anlamıyorsam Plesk'e ait sertifika satırları mevcut. Onlar ne iş görür bilemiyorum.

.htaccess ne için gerekli? Nginx .htaccess kullanmaz, ne yapacaksan yine yapılandırma dosyası üzerinden yaparsın. Eğer 80 portundan gelen http isteklerini https yönlendirmesi için soruyorsan, onun için de basit bir "server" bloğu açıp "url rewrite" yapmak yeterli oluyor.

Cidden bu iş bu kadar zor değil. Senin konuyu açmandan hemen sonra "Let's Encrypt" projesinin beta olarak dışarı açıldığını okudum ve uzunca zamandır kullanmadığım sitem için deneyeyim dedim. Ben de Nginx kullanıyorum. Projenin teknik olarak nasıl uygulanacağı bilgisi için okuma yaptığım zamanı saymazsak eğer, elle sertifika edinme sürecinden sonra bunu Nginx'e uygulayıp siteye işlemek inan beş dakika sürmedi. Kaldı ki çok da tecrübeli değilim ben de https konusunda. Bakma burada atıp tuttuğuma kısacası :)

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.