Apache web sunucusu için SSL sertifikasını aşağıdaki gibi oluşturabilirsiniz. Bu sertifikayı oluşturmak için OpenSSL kullanacağız. Https ile güvenli siteler yapmak için günümüzde mutlaka bu SSL sertifikasını oluşturmalı ve kullanmalısınız. Biz oluşturma işlemini XAMPP server için yapacağız, sizde XAMPP kullanmıyorsanız kendinize göre komutları uyarlayabilirsiniz. İlk olarak Apache bin klasörüne gidilir.
cd /E E:\xampp\apache\bin
Bazı parametreleri set edelim
set OPENSSL_CONF=E:\xampp\apache\conf\openssl.cnf
set RANDFILE=C:\Temp\.rnd
RSA private key Oluşturma
openssl genrsa -out server.key 1024
2048 şifreleme kullanabilirsiniz, sadece komutun sonundaki değeri değiştirmeniz yeterlidir. DS3 ile şifrelemek isterseniz aşağıdaki komutu kullanın.
openssl genrsa -des3 -out server.key 1024
Bu opsiyon size bir şifre soracaktır, uygun bir şifre ile şifreleyin.
CSR (Certificate Sign Request ) Oluşturma
openssl req -nodes -new -key server.key -out server.csr
Bu komutu girdikten sonra çıkan aşağıdaki alanları doldurun.
State or Province Name (full name) [Some-State]:Istanbul
Locality Name (eg, city) []:Istanbul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Şirket Adı
Organizational Unit Name (eg, section) []:Bölüm
Common Name (e.g. server FQDN or YOUR name) []:Domain
Email Address []:eporta adresi
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:Domain
Burada dikkat edilmesi gereken "An optional company name" alanınında doldurulmasıdır. Bu alanı doldurmazsanız bazı browser'lar da hata alınabilir. Apache\bin klasöründe oluşacak server.csr isimli CSR dosyasını kullanabilirsiniz.
CSR dosya içeriği nasıl kontrol edilir.
openssl req -in E:\XAMPP\apache\bin\server.csr server -noout -text
Tek Satırda KEY ve CSR Dosyası Oluşturma
İlk olarak bir openssl-san.cfg dosyası oluşturmamız gerekiyor. Dosya içeriği aşağıdaki gibi olmalı.
${URL_ADRESS}=domain adıdır.
------------------------------------
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = TR
ST = IS
L = Istanbul
O = Sirket
OU = Bolum
CN = ${URL_ADRESS}
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = ${URL_ADRESS}
DNS.2 = ${URL_ADRESS}.uzantısı
Dosyayı openssl komutunu yazacağımız alana kopyalamalıyız. Açağıdaki komut ile Key ve CSR dosyalarını yukarıdaki konfigürasyona göre oluşturmuş oluruz.
openssl req -new -newkey rsa:2048 -nodes -out ${URL_ADRESS}.csr -keyout ${URL_ADRESS}.key -config openssl-san.cfg
Aşağıdaki komut ile içeriğini kontrol edebiliriz.
openssl req -in dosya.csr server -noout -text
Kontrollerde bir sorun yoksa dosya.csr isimli dosyayı SSL alacağınız kişi veya kuruma gönderebilirsiniz. Kendiniz sertifika oluşturacaksanız yazının devamını takip ediniz.
Sertifika Oluşturma
Aşağıdaki komutu kullanarak sertifika oluşturabilirsiniz.
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Tek Adımda Sertifika Oluşturma:Opsiyonel
openssl req -nodes -new -x509 -keyout server.key -out server.crt
Sertifikayı uygulama
Apache Http.conf dosyasına aşağıdaki bölümü ekleyebilirsiniz.
DocumentRoot E:/XAMPP/htdocs/
ServerName Domain
ServerAlias *.Domain
SSLEngine On
SSLCertificateFile "conf/ssl.crt/server.cer"
SSLCertificateKeyFile "conf/ssl.crt/server.key"
</VirtualHost>
copy /Y server.crt e:\xampp\apache\conf\ssl.crt
copy /Y server.key e:\xampp\apache\conf\ssl.key
Apache sunucusunu yeniden başlatın.
SSL çalışır durumda.
Kaynak : https://benohead.com/blog/2014/05/07/generating-new-certificate-xampp-windows/
https://helpcenter.gsx.com/hc/en-us/articles/207831828-How-to-identify-the-Cipher-used-by-an-HTTPS-Connection
https://docs.microsoft.com/en-us/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-