Sekarang ini, penggunaan sertifikat SSL/TLS adalah kewajiban bagi pemilik website dan aplikasi web. Akan tetapi, ada satu kendala yang dihadapi oleh tim development untuk melakukan website testing secara aman, karena pihak CA ataupun penyedia SSL/TLS gratis Lets Encrypt tidak menerbitkan lagi sertifikat untuk website lokal (localhost) per 1 November 2015 mengikuti pengumuman CA/B Forum yang menghentikan penerbitan sertifikat tersebut.
Untuk tetap bisa melakukan website testing dengan aman, ada dua pilihan alternatif yang bisa Anda gunakan meskipun tanpa melibatkan pihak CA yang memiliki root terpercaya di browser.
- Menerbitkan Sertifikat Self-Signed
Self-signed merupakan sertifikat SSL/TLS yang bisa Anda peroleh dengan bantuan perangkat OpenSSL dan lainnya. Dengan cara ini Anda bisa mendapatkan sertifikat dan private key yang bisa diinstal pada server lokal.
openssl req –x509 –out localhost.crt –keyout localhost.key \
-newkey rsa:2048 –nodes –sha256 \
-subj ‘/CN=localhost’ –extensions EXT –config <( \ print “[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]nsubjectAltName=DNS : localhost\nkeyUsage=digitalSignature\nextendedKeyusage=serverAuth”)
Mungkin jika diakses melalui di browser self-signed ini akan terbaca distrust karena root sertifikatnya bukan berasal dari Otoritas Sertifikat terpercaya, namun selama itu di localhost akan tetap bekerja seperti umumnya untuk mengenkrip dan mendekrip transformasi data lokal.
- Menggunakan mkcert
Cara ini dilakukan dengan mendaftarkan domain (misal, abc.localhost.com), yang secara lokal memutuskan untuk 127.0.0.1 (in/etc/hosts), mendapatkan sertifikat biasanya untuk domain. Tetapi, cara semisal itu jika dipertanyakan dalam sudut pandang keamanan – khususnya layanan untuk publik – sangat tidak direkomendasikan karena rentan terkena serangan MIM (Man In the Middle attack) dengan perubahaan ke alamat IP yang berkonflik. Dan jika kita membatasi diri untuk keperluan mesin lokal, maka ini bisa menjadi pilihan yang pas–meskipun ada beberapa keraguan tentunya. Selain itu, sertifikat tersebut dapat dicabut.
Dalam kasus ini, masih ada opsi aman dan simpel yang bisa dijalankan untuk menggunakan mkcert (lihat bawah).
Mkcert ini merupakan sebuah utilitas sederhana untuk generate sertifikat lokal yang dipercaya dengan otoritas sertifikat mereka sendiri. Dan berjalan dengan baik di semua OS tanpa memerlukan konfigurasi apapun.
- Linux
Pertama-tama, Anda perlu menginstal certutil.
sudo apt install libnss3-tools
-atau-
sudo yum install nss-tools
-atau-
sudo pacman -S nss
Lalu jalankan perintah:
brew install mkcert
-atau kumpulkan dari sumber (source):
go get -u github.com/FiloSottile/mkcert
$(go env GOPATH)/bin/mkcert
- MacOS
Ikuti perintah berikut:
brew install mkcert
brew install nss (jika Anda menggunakan FireFox)
- Windows
Anda bisa mengunduh collectes binaries atau menggunakan salah satu paket pengatur; Chocolatey or Scoop.
choco install mkcert
-atau-
scoop install mkcert
