SSL

SSL dan Nginx

Tanggal 11 Aug 2008
Kategori : Aplikasi Linux
Tag : , , ,

Setelah sebelumnya kita mencoba memanfaatkan fasilitas SSL dengan web server Apache, kali ini kita akan melakukan konfigurasi SSL dengan Nginx. Tulisan ini dibuat untuk memandu langkah demi langkah yang perlu dilakukan untuk menggunakan SSL pada Nginx termasuk proses pembuatan Key Pair dan self signed certificate yang sedikit berbeda dengan SSL pada Apache.

Fasilitas komentar untuk artikel ini dimatikan, feedback dan error yang anda dapatkan saat menjalankan langkah-langkah yang diuraikan disini silahkan diutarakan melalui Forum Magnet http://forum.magnet-id.com/.

Pada contoh kasus ini mesin Linux menggunakan CentOS 64 bit. Studi kasus adalah menjalankan phpMyAdmin pada port HTTPS 443 dengan menggunakan Nginx. Prinsip yang sama dapat digunakan dengan operating system dan aplikasi web lainnya.

openssl

Pastikan bahwa mesin Linux anda telah terinstall dengan openssl; kita akan menggunakan openssl untuk mengenerate key pair dan self signed certificate.

yum install openssl

Create Keys, CSR (Certificate Signing Request) dan Certificates

Buat direktori temporer yang dapat anda hapus kemudian setelah semua proses dilakukan dengan sukses.

mkdir /root/temp
cd /root/temp

Create private key, masukkan passphrase, passphrase ini akan kita hapus kemudian;

openssl genrsa -des3 -out pma.key 1024

Create CSR (Certificate Signing Request) dan masukkan informasi yang dibutuhkan, dianjurkan untuk memasukkan Common Name (CN) sesuai dengan nama server yang akan dilayani, calam contoh ini adalah pma.yourdomain.com.

openssl req -new -key pma.key -out pma.csr

Hapus passphrase yang kita masukkan sebelumnya, apabila hal ini tidak dilakukan maka kita diharuskan untuk memasukkan passphrase setiap mesin / web server anda di reboot.

cp pma.key pma.key.org
openssl rsa -in pma.key.org -out pma.key

Create self signed digital certificate

openssl x509 -req -days 365 -in pma.csr -signkey pma.key -out pma.crt

Selanjutnya adalah memindahkan file certificate (crt) dan file key ke direktori yang akan dipanggil kemudian melalui konfigurasi Nginx, dalam kasus ini kita akan memindahkan ke direktori Nginx (cert), sesuaikan path dengan selera anda.

mkdir /usr/local/nginx/cert
cp pma.crt pma.key /usr/local/nginx/cert

Konfigurasi Nginx

Berikut entry dari konfigurasi nginx bagian server { }, melalui konfigurasi ini kita akan melayani request ssl pada port 443.

server {
listen pma.yourdomain.com:443;
client_max_body_size 10M;
index index.php;
server_name pma.yourdomain.com;
root /var/www/pma.yourdomain.com;

ssl on;
ssl_certificate /usr/local/nginx/cert/pma.crt;
ssl_certificate_key /usr/local/nginx/cert/pma.key;

location / {
proxy_set_header X_FORWARDED_PROTO https;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect false;
proxy_max_temp_file_size 0;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param HTTPS on;
include /usr/local/nginx/conf/fastcgi_params;
}
}

References

  • http://rubyjudo.com/2006/11/2/nginx-ssl-rails
  • http://articles.slicehost.com/2007/12/19/ubuntu-gutsy-self-signed-ssl-certificates-and-nginx
  • http://blog.skateinmars.net/post/2007/11/01/phpMyAdmin-and-HTTPS-on-nginx
Situs ini dibuat dengan memanfaatkan Teknologi Open Source Wordpress, Nginx, 960 Grid System dan Linux CentOS.
Isi dari situs diutamakan untuk membantu Pengguna Layanan Magnet Hosting dalam memanfaatkan layanannya, disediakan tanpa jaminan, dapat dimanfaatkan, diperbanyak ataupun ditulis kembali dengan resiko masing-masing.
Copyright PT. Indonesia Digital Media © 2008-2009. (Top)