Ada yang komentar di blog saya dari saudara Fadli dengan pertanyaan seperti ini
Terima kasih atas tutorialnya, saya mau ketika web nya menggunakan ssl(https) icecast diserver tidak bisa d putar, mohon masukannya (lihat komen aslinya)
Penyebabnya karena mixed content antara non SSL nya dari icecast (http://) sementara webnya https://
Untuk kondisi skrg https memang sudah jadi standar, jadi icecast yang support https juga sudah seperti menjadi kewajiban jika ingin di embed pada website kita.
Instalasi SSL dari Let's Encrypt untuk icecast
Tutorial ini dibuat dengan asumsi:
- Icecast v.2 sudah terinstall
- menggunakan OS debian/ubuntu
- webserver apache (atau yg lainnya menyesuaikan) sudah terinstall
- domain icecast yang akan digunakan adalah listen.inspiradio.id
- port yang akan digunakan support SSL adalah port 9000
Langkah-langkahnya:
- Install Lets Encrypt Certbot
apt-get install certbot
- Jalankan certbot dengan domain yang digunakan untuk icecast anda, dalam contoh ini listen.inspiradio.id
certbot certonly --webroot-path="/usr/share/icecast2/web" -d 'listen.inspiradio.id'
-
Jika ada pertanyaan-pertanyaan silahkan dijawab dan disesuaikan dengan kondisi masing-masing
-
Menggabungkan 2 file sertifikat yang sudah dihasilkan certbot, agar dapat digunakan oleh icecast
cat /etc/letsencrypt/live/listen.inspiradio.id/privkey.pem /etc/letsencrypt/live/listen.inspiradio.id/cert.pem > /etc/icecast2/bundle.pem
chmod 666 /etc/icecast2/bundle.pem
- Tambah fungsi renewal SSL icecast, buka file:
nano /etc/letsencrypt/renewal/listen.inspiradio.id.conf
Perhatikan pada bagian [renewalparams], tambahkan command seperti pada langkah 4 yang berfungi untuk menggabungkan 2 file sertifikat.
cat /etc/letsencrypt/live/listen.inspiradio.id/privkey.pem /etc/letsencrypt/live/listen.inspiradio.id/cert.pem > /etc/icecast2/bundle.pem
Simpan dan keluar dari editor.
- Anda dapat mengecek apakah fungsi renewal bisa berjalan dengan normal (simulasi renewal)
certbot renew --dry-run
- Edit konfigurasi icecast, buka file:
nano /etc/icecast2/icecast.xml
- Tambahkan lokasi bundle.pem yang telah kita buat pada langkah 4 diatas, cari bagian < paths > < /paths > dan tambahkan kode berikut
<ssl-certificate>/etc/icecast2/bundle.pem</ssl-certificate>
- Tambahkan port icecast yang support SSL, biasanya kami posisikan dibawah port standar 8000 supaya mudah mencarinya kemudian
<listen-socket>
<port>9000</port>
<ssl>1</ssl>
</listen-socket>
Simpan dan keluar dari editor.
- Restart icecast
service icecast2 restart
Sebagai catatan tambahan, sangat mungkin sekali setup server yang anda gunakan berbeda-beda sehingga harus disesuaikan, tetapi pada prinsipnya anda menginstall dan menjalankan Let’s Encrypt untuk generate sertifikat SSL dan memasukannya kedalam icecast.