Self Signed Cert | Using openssl in Debian With Nginx Webserver

Posted by Abonk on Mon, 07/30/2012 - 06:16

Kali ini saya akan merefres kembali pengetahuan kita tentang ssl, sederhananya tentang protokol https, hehe

alat dan bahan (yang saya gunakan) :

1. sebuah VPS KVM
2. Debian 6.0
3. Nginx webserver

langkah kerja :

1. pastikan vps kita telah bekerja dengan baik, saya menggunakan auto installer nginx versi 1.3.9 dari serversreview.net (biar gampang installasi nginxnya dan manajemen vhostnya, karna sudah lengkap di dalam autoinstaller tersebut)

2. login dengan menggunakan root atau gunakan perintah sudo.

3. Generate Private keynya

#openssl genrsa -des3 -out vbfk.com.key 1024

kita akan di minta pass phrase, isikan saja dengan apa yang kita mau, minimal 4 karakter.

tunggu sampai proses selesai, proses ini akan menghasilkan file : vbfk.com.key

4. Generate  Certificate Signing Request

#openssl req -new -key vbfk.com.key -out vbfk.com.csr

kita akan kembali diminta memasukkan pass phrase yang tadi kita masukkan di awal.
selanjutnya bila ingin mengcustom silahkan isi parameternya, bila tidak cukup enter sampai selesai.

proses ini akan menghasilkan file : vbfk.com.csr

5. Generate  Self-Signed SSL Certificate

#openssl x509 -req -days 365 -in vbfk.com.csr -signkey vbfk.com.key -out vbfk.com.crt

kembali kita akan diminta memasukkan pass phrase yang kita buat di awal, proses ini akan menghasilkan file : vbfk.com.crt

setelah semua selesai kita generate, untuk memudahkan kita kumpulkan di tempat seharusnya cert dan key tersebut berada,
 


#cp vbfk.com.crt /etc/ssl/certs/
#cp vbfk.com.key /etc/ssl/private/

langkah berikutnya adalah meng edit, configurasi nginx kita, file yang akan kita edit adalah virtual host conf nginxnya, secara default file ini akan berada di folder
 

/etc/nginx/sites-available/

dan dalam hal ini yang akan saya edit adalah file vbfk.com

yang isinya (setelah di edit, dan silahkan telaah sendiri yes, hehe saya hanya menambahkan port 443 (ssl) kedalam confnya ):
 


server {
  #move the server_name 'www.' to rewrite
  #if you prefer www.domain.com
  server_name  www.vbfk.com;
  rewrite ^/(.*) http://vbfk.com$1 permanent;
}

server {
  listen 80;
  #add 'www.' prefix if you prefer www.domain.com
  server_name vbfk.com;
  access_log /home/www/vbfk.com/logs/access.log;
  error_log /home/www/vbfk.com/logs/error.log;

  location / {
    root /home/www/vbfk.com/public_html/;
    index index.html index.htm index.php;
   
    include /etc/nginx/conf/wpconf;
  }
  location ~ \..*/.*\.php$ {
    return 403;
}
  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /home/www/vbfk.com/public_html$fastcgi_script_name;
  }
}

server {
  listen 443;
  #add 'www.' prefix if you prefer www.domain.com
  ssl    on;
  ssl_certificate    /etc/ssl/certs/vbfk.com.crt;
  ssl_certificate_key     /etc/ssl/private/vbfk.com.key;
 
  server_name vbfk.com;
  access_log /home/www/vbfk.com/logs/access.log;
  error_log /home/www/vbfk.com/logs/error.log;

  location / {
    root /home/www/vbfk.com/public_html/;
    index index.html index.htm index.php;
   
    include /etc/nginx/conf/wpconf;
  }
location ~ \..*/.*\.php$ {
    return 403;
}
  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /home/www/vbfk.com/public_html$fastcgi_script_name;
  }
}

lalu restart nginxnya :
 


#service nginx restart

selesai deh, domain kita udah bisa di akses memalui protokol https, yang perlu diingat dalam penggunaan self signed cert ini setiap browser akan memberikan peringatan bahwa cert kita tidak dikenali, karna emang ga terdaftar seperti cert komersil, hehe

selamat mencoba dan belajar...

salam hangat
 

 

Kategory: