Sekarang jamannya serba pake SSL (https), walaupun ngga jelas kebutuhannya kenapa harus pake SSL :P. Singkat cerita saya diminta agar Radio Online salah satu teman agar bisa diakses dari https, dia menggunakan Shoutcast 1.9.8 di Linux, karena shoutcast tersebut tidak support SSL secara langsung, mau tidak mau harus di paksakan menggunakan reverse proxy nginx, banyak solusi untuk masalah ini tetapi disini saya memilih menggunakan nginx.

Disini diasumsikan shoutcast server sudah aktif, bila belum ada ikuti langkah-langkahnya disini.

Persiapan

Yang perlu di persiapkan
– VPS/Cloud Server (saya menggunakan Linode)
– SSL (saya menggunakan RapidSSL)

Install Nginx

Disini saya menggunakan Debian 8, caranya hampir sama untuk semua distro Linux.
Kita akan menggunakan repository dari Nginx langsung

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list

lalu install nginx

apt-get update
apt-get install nginx

Setting SSL

Untuk reverse proxy ssl ini kita akan menyimpan konfigurasinya di /etc/nginx/conf.d/ssl.conf, berikut ini isi file ssl.conf

server {
 
        listen 443;
        ssl    on;
        ssl_certificate    /etc/nginx/ssl/radiossl.jaranguda.com.crt;
        ssl_certificate_key    /etc/nginx/ssl/radiossl.jaranguda.com.key;
 
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE$
        ssl_prefer_server_ciphers on;
        ssl_session_cache  builtin:1000  shared:SSL:10m;
        add_header Strict-Transport-Security max-age=63072000;
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
 
        server_name radiossl.jaranguda.com;
        access_log /var/log/nginx/radiossl.jaranguda.com.access_log;
        error_log /var/log/nginx/radiossl.jaranguda.com.error_log;
        root /var/www;
        index index.php index.htm index.html;
 
        location / {
        proxy_set_header                Host $host;
        proxy_set_header                X-Real-IP $remote_addr;
        proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header                X-Forwarded-Proto $scheme;
        proxy_pass                      http://SHOUTCAST:PORT;
        proxy_read_timeout      90;
        }
}

Bagian yang perlu disesuaikan
ssl_certificate : Letak file sertifikat SSL anda
ssl_certificate_key : Letak file key sertifikat SSL anda
server_name : alamat subdomain/domain yang akan digunakan
proxy_pass : alamat shoutcast server, contoh http://radioku.jaranguda.com:8000

setelah selesai test configurasi anda, dan restart

nginx -t
service nginx restart

lalu coba akses di browser https://DOMAINSSLNYA
shoutcast radio in ssl

Leave a comment

Your email address will not be published. Required fields are marked *