Uzun bir uğraştan sonra RapidSSL den almış olduğum SSL sertifikasını apache servera yüklemeyi başardım. Uzun olmasının sebebi de sertifikayı google “SSL sertifika satın al” yazıp önüme çıkan hiç bilinmeyen bir hosting firmasından satın alıp tam 4 gün beklemem oldu. Burdan alınacak en büyük ders bilmediğim yerle iş yapmamak oldu. RapidSSL in kendi sitesinden baktığımda yıllık sertifika fiyatlarının 79$ dan başladığını gördüm. Fakat bilinmeyen hosting firmalarından aldığınız SSL sertifikalarına 29$ ödeyerek 1 yıllığına satın alabiliyorsunuz.
Verisign firmasının SSL sertifikalarını incelerseniz fiyatların çok daha fazla olduğunu göreceksiniz. Fiyatlar arasında büyük farklar olmasının çeşitli nedenleri var tabiiki. Bu fiyat farklarını belirleyen 3 önemli nokta;
1. Verdikleri teminat bedelleri. Verisign algoritmasına güvenir, 1.000.000 $ garanti verir. Rapidssl de güvenir fakat 10.000 $ verir. Baktığınızda bu iki protokol üzerindeki bilgiler 3. şahısların eline hiç bir zaman geçmediği için bu rakamları bu güne kadar alanda olmamıştır.
2. İstenilen resmi belgelerde bu rakamı etkiler. Siz rapidssl i almak için CSR kodunu gönderip mail adresinize gelen doğrulama mailini tıkladıktan sonra sertifikanızı hemen sunucunuza kurabilirsiniz. Fakat verisign da sizden bazı resmi belgeler istenir. Bu sürenin uzamasına yol açar ve baktığınızda sizinle ilgilenen kişiler olmuştur. Rapidssl de ise herşey otomasyonlarla yapılır. Bunlarda maliyeti arttıran en önemli faktörlerdir.
3. Marka… Verisign ismini sitenizde ve sertifikanızda göstermeniz halinde, siteniz hiç duyulmamış bir site bile olsa bile insanlar sitenize güvenebilir. Bunu şöylede düşünebilirsiniz. Ufak çaplı bir firma açtığınızda ister esnaf ve sanatkarlar odasına isterseniz de ticaret odasına kayıt olursunuz. Aralarında gözle görülür bir fark yoktur. Ama örneğin, esnaf vso na 50 lira verirken Ticaret odasına 200 lira verirsiniz. Aradaki ödediğiniz fark ise imajınızın daha güvenilir ve kurumsal olmasını sağlar. Genel olarak fiyat arasındaki farklar bunlardır.
Sözü çok fazla uzatmadan kurulum aşamasına geçelim;
SSL sertifikasının alınması için gerekli ön koşullar vardır.
1. sertifikanın yükleneceği serverda .csr ve .key uzantılı 2 adet key oluşturulması gerekmektedir.
2. oluşturulan .csr uzantılı key SSL sertifikası için istek keyidir ve içerisinde bazı bilgiler saklıdır. ilerleyen kısımlarda daha detaylı açıklanacaktır.
3. .csr key ile herhangi bir sertifika veren firmaya başvurduğunuzda size .crt uzantılı sertifikanızı gönderecektir. Bu sertifikayı sunucuya yükledikten sonra sertifikanızı kullanmaya başlayabilirsiniz.
Sertifikanın alınması;
1.
yukarıdaki 1. madde dediğimiz gibi öncelikle .csr ve .key uzantılı keyler oluşturmamız gerekiyor. Fakat bundan önce apache sunucunuzda openssl kurulu ve apache nin mod_ssl modülünün aktif olması gerekiyor. gerekli ön koşulları sağladıktan sonra öncelikle .key uzantılı keyimizi oluşturalım. dosyamızın ismi sertifikayı almak istediğimiz domain adı (Fully Qualified Domain Name (FQDN)) olmalıdır. ÖR: www.bayramkaragoz.org.key
aşağıdaki komutu konsola yazalım;
openssl genrsa -rand messages:messages.0.bz2:messages.1.bz2:messages.2.bz2:messages.3.bz2 -out www.bayramkaragoz.org.key 1024
buradaki -rand kısmından sonraki : işareti ile ayırdığım messages dosyaları, keyin oluşturulmasına yardımcı olacak log dosyalarıdır. İsterseniz farklı dosyalarda seçebilirsiniz. Fakat keyin oluşturulması aşamasında sisteminizde boyutları fazla olan ve sıkçe değişen 5 adet dosyanın yerini yazmanız keyin güvenliğinin daha yüksek olması açısından çok önemlidir.
komutun çıktısı;
0 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
......++++++
....++++++
e is 65537 (0x10001)
key dosyasının içeriğini göstermek istersek aşağıdaki gibidir;
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDWngCM+Bl+pf/YH4ZXpGWqgdwjqBAhYFse8QoRFDQxrSQ1o2Ga
L01gSGAJfu4yk3/vvYJ5CdzWBIcA1YLzxPRoTiHR3CLPYKcYPg27rwJfPDI/Gj1n
Qcd2pF5Qnsxmd6SJQRoBy2UhIU3fZgpU8GwVTs3ansj+L5fbONACI2lx/QIDAQAB
AoGANADFEWNsigufGrdIziO/nrkoplsqzWuTqMOvNMQ4gXD6vSSBmeKsVRA0dRiU
jxy+e1DoNHv3TsR6EfGqcXbf4ZSxjyzRsidfVyrdDmeyY3sFpvh9BcJv3CVdUvy8
P+IunMqVlQ/e1PH4tlOTSQlLcpxUBsVgL+oB6h4tKfXi7AECQQDuHYXVTGGjKpzH
77xwXDU3VacrxcX2mUpuw91NtB+jTZQO02WWwwjOuI2FQ+gFzLqps+rTCTYlBoRL
y5MiAlOhAkEA5ryoZLY0ExivZlCpJZ3b6BVvmEC33yTo7ufTPDblfAV3kCAvAusD
Sbjo9WJFw/0t5Zter2SlL0s+a6y70h9A3QJBAKV11l3VabNcFP3J1QOuzzvYRQXh
tCIbeuFlMQ6hr6pmag+zTdBpTmF3VL/Z5AzDqqHp568lo34u/Rc+KstjGoECQFoV
oB0p8ezev2RP66ovFrNm4xnrcp5hd7wGsLcaq8AfFk4j8pbOEIuQ8QsU4i4hw/CY
F4Cc580uMGGzn+TqpNUCQHgIuP7itqNFLw4D8byx4cmIsxSjsEAkMbAkuDXF/Qcv
yVG+MzDrP6bpyyuJM/MKXeY3gbS4ZtCPZXNeNhg6pVU=
-----END RSA PRIVATE KEY-----
2.
keyi oluşturduktan sonra .csr dosyasını oluşturmak gerekmektedir. dosyamızın adı yine domain name olmak zorundadır.
openssl req -new -key www.bayramkaragoz.org.key -out www.bayramkaragoz.org.csr
komutu yazdıktan sonra bizden bazı bilgiler istenecektir. Burada önemli olan nokta `Common Name (eg, YOUR name)’ sorusuna domain adınız ne ise onu yazmanız gerektiğidir. Kendi isminizi yazmayacaksınız. Diğer bilgileri aşağıdaki şekilde kendinize uygun bilgileri yazabilirsiniz;
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TR
State or Province Name (full name) [Some-State]:Turkey
Locality Name (eg, city) []:Istanbul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Outlier
Organizational Unit Name (eg, section) []:VoIP
Common Name (eg, YOUR name) []:www.bayramkaragoz.org
Email Address []:bayram@bayramkaragoz.org
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
csr dosyasını içeriği aşağıdaki şekildedir;
-----BEGIN CERTIFICATE REQUEST-----
MIIB3DCCAUUCAQAwgZsxCzAJBgNVBAYTAlRSMQ8wDQYDVQQIEwZUdXJrZXkxETAP
BgNVBAcTCElzdGFuYnVsMRAwDgYDVQQKEwdPdXRsaWVyMQ0wCwYDVQQLEwRWb0lQ
MR4wHAYDVQQDExV3d3cuYmF5cmFta2FyYWdvei5vcmcxJzAlBgkqhkiG9w0BCQEW
GGJheXJhbUBiYXlyYW1rYXJhZ296Lm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
gYkCgYEA1p4AjPgZfqX/2B+GV6RlqoHcI6gQIWBbHvEKERQ0Ma0kNaNhmi9NYEhg
CX7uMpN/772CeQnc1gSHANWC88T0aE4h0dwiz2CnGD4Nu68CXzwyPxo9Z0HHdqRe
UJ7MZnekiUEaActlISFN32YKVPBsFU7N2p7I/i+X2zjQAiNpcf0CAwEAAaAAMA0G
CSqGSIb3DQEBBAUAA4GBAAd8heG4YiQ3WHU0p+rEL7AZlg5hb5kBxeP88sKR5QHw
OVtXfeI21oeEGT0O9CYMHpZb29QgviZGxxdNqgXXDfZKRkSrzWGyCIsSN7WE+MLz
ox5O+Rna9Ztcs3Fr03e76IQ53yF1+zglNAphKsELGXTtf57GGAGge3x3vApunE+i
-----END CERTIFICATE REQUEST-----
3.
elde etmiş olduğumuz csr key ile ssl sertifikası veren firmaya başvurduğumuzda bizden bu istek .csr sertifikasını isteyecek ve bize .crt uzantılı sertifikamızı gönderecektir.
gelen sertifikayı yine domain_adi.crt olarak kaydedelim.
gelen sertifikanın örnek içeriği aşağıdaki gibidir;
-----BEGIN CERTIFICATE-----
MIICrzCCAhgCCQCdyYGDSkyQiDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMC
VFIxDzANBgNVBAgTBlR1cmtleTERMA8GA1UEBxMISXN0YW5idWwxEDAOBgNVBAoT
B091dGxpZXIxDTALBgNVBAsTBFZvSVAxHjAcBgNVBAMTFXd3dy5iYXlyYW1rYXJh
Z296Lm9yZzEnMCUGCSqGSIb3DQEJARYYYmF5cmFtQGJheXJhbWthcmFnb3oub3Jn
MB4XDTA5MDkxMTA5MTUyNloXDTA5MTAxMTA5MTUyNlowgZsxCzAJBgNVBAYTAlRS
MQ8wDQYDVQQIEwZUdXJrZXkxETAPBgNVBAcTCElzdGFuYnVsMRAwDgYDVQQKEwdP
dXRsaWVyMQ0wCwYDVQQLEwRWb0lQMR4wHAYDVQQDExV3d3cuYmF5cmFta2FyYWdv
ei5vcmcxJzAlBgkqhkiG9w0BCQEWGGJheXJhbUBiYXlyYW1rYXJhZ296Lm9yZzCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1p4AjPgZfqX/2B+GV6RlqoHcI6gQ
IWBbHvEKERQ0Ma0kNaNhmi9NYEhgCX7uMpN/772CeQnc1gSHANWC88T0aE4h0dwi
z2CnGD4Nu68CXzwyPxo9Z0HHdqReUJ7MZnekiUEaActlISFN32YKVPBsFU7N2p7I
/i+X2zjQAiNpcf0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCKqgdpQ8vDyVTTH+Dm
6w6Yfz6rWpQdEWlpv8hEON9zlWQOhJvTKmPoCsIDrAWj6+6w5xaBTwgIxtEpTxLr
AP79Yj4V1AqIRTTD446UsCLIxnJDTkj3Q7xv0VhXQfeK7Zv4s+ejrUVTmG5xxgRL
plDO+65mjtbi9GDpEENnMOcFkQ==
-----END CERTIFICATE-----
İstediğimiz takdirde orjinal sertifikamız gelene kadar kendimiz geçici bir sertifika oluşturabiliriz. Aşağıdaki komut ile kendi domain adımız için geçici bir sertifika oluşturabiliriz.
openssl x509 -req -days 30 -in www.bayramkaragoz.org.csr -signkey www.bayramkaragoz.org.key -out www.bayramkaragoz.crt
komutun çıktısı;
Signature ok
subject=/C=TR/ST=Turkey/L=Istanbul/O=Outlier/OU=VoIP/CN=www.bayramkaragoz.org/emailAddress=bayram@bayramkaragoz.org
Getting Private key
sertifikanın alınması işlemi tamamlandı ise şimdide kurulum aşamasına geçelim;
sertifikanın aktif edilmesi;
.csr , .key ve .crt uzantılı 3 adet keyiminizi apache altına ssl sertifikalarının olduğu yerlere taşıyalım. FreeBSD de sertifikaların olduğu kısım /usr/local/etc/apache/ssl.* dir. Örneğin www.bayramkaragoz.org.csr keyini /usr/local/etc/apache/ssl.csr/ altına, www.bayramkaragoz.org.key dosyasını /usr/local/etc/apache/ssl.key altına, www.bayramkaragoz.org.crt dosyasını da /usr/local/etc/apache/ssl.crt altına taşıyalım.
Daha sonra apache sunucuda virtual hostlarla alakalı bize ait olan virtual host tanımlamasının bulunduğu httpd.conf dosyasındaki ilgili kısıma aşağıdaki ifadeleri girerek kendi virtual hostumuz için sertifikaların yerini belirmiş olacağız;
SSLCertificateFile /usr/local/etc/apache/ssl.crt/www.bayramkaragoz.org.crt
SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/www.bayramkaragoz.org.key
tanımlamayı yaptıktan sonra apache de ssl mod aktif ise apache yi restart ederek, aktif değil ise apache yi durdurup ssl mod ile çalıştırarak sertifikanın aktif olmasını sağlayabiliriz.
apachectl stop
apachectl startssl
Artık sunucu ile tüm istemciler arasındaki web haberleşmesi şifreli olarak yapılabilecektir.
Kaynaklar:
http://www.verisign.com/support/tlc/csr/modssl/v00.html
http://www.rh.com.tr/cozumler/ssl/ssl-kurulumu/apache_ssl_kurulumu.aspx
http://www.trustcenter.de/installation_instruction_for_intermediate_ca_certificate.htm#Apache
http://www.cozumpark.com/forums/thread/12906.aspx
