Node.js Projelerinde OpenSSL Kullanınımı

Mehmet Demirel
3 min readDec 16, 2021

Herkese merhaba,

bu gün sizlerle NodeJS projelerinizde SSL/TLS kullanarak Client-Server arası güvenli bir bağlantı sağlamayı göstereceğim.

Öncelikle yapmamız gereken şey OpenSSL’i işletim sistemimize kurmak. Ben Windows kullanıyorum siz başka işletim sistemlerine kurmak isterseniz arama motorunuz üzerinden işletim sisteminize uygun kurulumu bulabilirsiniz.

Bu adrese giderek aşağıda kırmızı ok ile gösterdiğim alana tıklayarak exe setup’ını edinin. Kurulumu basit olduğu için bu adımları atlamamda sakınca olmadığını düşünüyorum ve bi sonraki adıma geçiyorum.

Kurulum bittikten sonra OpenSSL’i Windows’a yürütülebilir bir dosya olarak tanıtmamız gerekiyor bunun için yapmamız gereken adımları gelin gerçekleştirelim.

Yapmanız gereken sadece Windows Başlat’a basıp path yazmak ve ardından çıkan uygulama yönlendirmesine tıklamak.

Ardından açılan pencerede Çevre Değişkenleri’ne tıklayın ve bu şekilde kalsın. Şimdi OpenSSL’imizi kurduğumuz klasöre gidip bin klasörünün yolunu kopyalamamız gerekiyor. OpenSSL’i hangi diskinize kurmuşsanız oraya giderek kopyalayın.

Ardından az önce açmış olduğumuz Çevre Değişkenleri’ne geri dönün.

Path ismindeki değişkene çift tıklayın ve Yeni diyerek kopyalamış olduğumuz yolu buraya yapıştırın.

Şimdi gelin OpenSSL’i kontrol edelim yapmamız gereken terminalimize openssl yazmak.

Evet başrıyla çalışmasını sağladık. Şimdi kendimize bir sertifika ve key oluşturalım.

Burada tek tek OpenSSL’in komut satırlarını anlatmam yazıyı uzatacaktır çünkü çok fazla opsiyon var bu sebep/sebeplerden dolayı sizlere komut satır opsiyonları için link bırakıyorum inceleyebilirsiniz. Link1 Link2

openssl req -nodes -new -x509 -keyout localserver.key -out localserver.cert

Oluşan iki dosyayı projenizin olduğu klasöre dahil edin. İsterseniz bu oluşan dosyalardaki içeriği bir değişkene de aktarabilirsiniz size kalmış ben fs ile dosyaları okuyacağım ve basit bir GET metodu yazacağım.

Serverımızı başlatalım, Postman ile Get isteğinde bulunalım. Ben bu sırada Wireshark ile sonuçları hem sizle paylaşmak hemde gözlemlemek için arkaplanda 3000 portunu izleyeceğim.

İstekte bulundum ve başarılı bir şekilde datamı aldım. Şimdi Wireshark üzerinden başarılı olup olmadığını biraz daha iyi anlayabiliriz.

Protocol kısmını yukarıdan aşağı inceledğimizde TCP bağlantısı öncelikle OpenSSL’e bağlanıyor. Server ve client arasında öncelikle birbirlerini tokalaştırıp tanıştırtıyor (Info kısmından Clinet’ın servera selam verdiğini görebilirsiniz) ve clientı doğruladıktan sonra verileri teslim ediyor. Aşağıda da şifrelenmiş data/datalarımızı görebilirsiniz.

Peki SSL/TLS kullanmasaydık ne olacaktı? Gelin bir de onu görelim.

Daha bize cevap dönmeden ortada kaldık. Posmtan-Token’in sizin tokeniniz olduğunu düşünün? Pek sağlıklı bir durum değil açıkçası. Gelin bir de dönen cevaba bakalım.

Gördüğünüz üzere güvenli bir bağlantı sağlayamadığımız zaman bütün bilgilerimiz çok kolay bir şekilde erişilebilir bir hale bürünüyor. Sonraki yazılarımda görüşmek üzere.

--

--