SSL sertifikası yaratma
by Emre Tugriceri on Jan.04, 2008, under Security
Openssl ile sertifika yaratmak için yarattığınız anahtar dosya da güçlü şifreleme methodlarından birini seçerseniz sizden bir şifre girmenizi isteyecektir. Apache nin her başlamasında bu şifreyi yazmanız gerekmektedir.
Şifre sorulmadan bir sertifika yaratmak için ;
shell #> openssl dsaparam 1024 -out dsadosyasi
“dsaparam DSA Parameter Generation.”
shell #> openssl gendsa -out webserver.key dsadosyasi
Bu aşamada sizden şifre istenmeden bir key dosyasi yaratılacaktır. Bir şifre vermek isterseniz -des3 parametresi ekleyerek 3des algoritması ile şifrelenmiş bir anahtar dosya yaratabilirsiniz.
Sertifika talep dosyası yaratmak için ;
shell #> openssl req -new -key webserver.key -out webserver.csr
webserver.csr bizim sertifika talep dosyamız. Bu dosyayı kendi CA imizde yada Verisign gibi trusted CA lerde imzalatıp kullanabiliriz.
Kendi CA server imizda imzalamak için
shell #> openssl x509 -req -days 365 -in webserver.csr -signkey webserver.key -out webserver.crt
apache içerisinde ;
<VirtualHost _default_:443>
ServerAdmin root@tugriceri.com
DocumentRoot /var/www/html/
ServerName mail.tugriceri.com
SSLEngine on
SSLCertificateFile /webmail/webserver.crt
SSLCertificateKeyFile /webmail/webserver.key
#SSLCACertificateFile /webmail/cacertnew.pem
SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown
</VirtualHost>
_default_ webserver inizin default ip adresidir. Her sertifika için başka ip ler vermeniz gerekmektedir. Bu sebepten diğer virtual host lar için _default_ yerine ip adresinizi yazabilirsiniz.
Eğer CA server başka bir sunucunuzun üzerinde ise SSLCACertificateFile ile CA sertifikanızı apache ye gösterebilir yada ;
shell #> keytool -import -file /webmail/cacertnew.pem
ile default key store içerisinde ekleyebilirsiniz.
Örnek;
openssl genrsa -des3 -rand file1:file2:file3:file4:file5 -out server.key 1024
openssl rsa -in server.key -out server.pem
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 60 -in server.csr -signkey server.key -out server.crt