SSL’in Open SSL olabiliyor olması windows kullanıcıları açısından pek de iyi olmamış. Zira çoğu durum ya da çoğu program windowsa göre değil Linux’e göre düzenlenmiş ve anlatılmış.

Böyle bir durumda Arama-Bulma Kabiliyeti diye bir şey varsa,
(-ki bence var; ve aranacak terimleri değil, çıkacak sayfada cevap için geçmesi beklenen olası terimleri gogıllamakla gelişen bir kabileyet. tabi yanında zaman aralığı, site: title: eksi- vb.. araçlarla kombin yapmak da buna dahil-)

bu kabileyeti hakkını vererek kullanmak gerekiyor.


Önceki yazılar: HttpS openSSL NodeJS Windows, SSL Sertifikacı Sertaç’a Güven(dir)mek, Görsel


İkinci yazıdaki pek çok şey olduktan sonra ya da ilk bazı da ilk adımlar gerçeleşip sonrakiler gerçekleşmediğinde

subjectAltName = @alt_names

[alt_names]

ile ilgili sorun yaşıyor olabilirsiniz.

Ve genelde konsoldan openSSL komutları verirlen “echo” hatasıyla birlikte kendini gösterebilir.

Bu durumda komut satırına yazılacak komutları da çok uzatmayacak şekilde v3.ext dosyası oluşturmak belki çözüm olabilir.

Bi text editörü açıp içine şunları yazın ve v3.ext adıyla kayıt edin.

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost

Ardından cmd konsolda şunları yazıp enterlayın;

openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config cat server.csr.cnf

 

Sıra geldi az localhost için yukarıda kayıt etmiş olduğumuz v3.ext dosyasını belirerej server.crt dosyasını oluşturmaya. Bunun için yine konsolda şu kodları yazalım:

server.crtopenssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext

Önceki adımlarda girdiğimiz şifreyi istedikten sonra .crt dosyamız hazır olacak.
yani localhostumuza özel sertifika dosyamız.


Yey!.

Dosyamız var tamam da, webden istek gelen portları dinleyen programımıza da bunu söyleyelim ki,
kullanıcının tarayıcısına bunu bildirsin, karşılıklı doğrulama yapılsın ve Yeşil Kilit simgesi çıksın 😉

// Tabi bu genel mantık olarak, güvenli bir şeyler yapmaya çalıştığımız için küçük de olsa bazı nüsanslarda hata çıkması gayet olası.

var fs = require('fs')
var https = require('https')
var express = require('express')
var cOptions = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt')
}
var app = express()
var server = https.createServer(cOptions, app).listen(443)

Bu örnekteki sunucu programımız NodeJS. O yüzden app.js ya da root için hangi ismi kullanıyorsanız o dosyaya yukarıdaki kodları eklediğinizde -ve her şey yolunda gittiyse-;

http://locolhost adresine girdiğinizde hem Kilit hem de SSL sertfikanız görünüyor olacak 😉