Saat ini, penggunaan HTTPS menjadi wajib untuk semua situs dan aplikasi web. Namun dalam proses pengembangan ada masalah pengujian yang benar. Secara alami, Let's Encrypt dan CA lainnya tidak mengeluarkan sertifikat untuk localhost.
Secara tradisional, ada dua solusi.
- Sertifikat yang ditandatangani sendiri dihasilkan melalui openssl atau orang lain. Berikut adalah cara termudah untuk menghasilkan kunci pribadi dan sertifikat yang ditandatangani sendiri untuk localhost:
openssl req -x509 -out localhost.crt -keyout localhost.key \ -newkey rsa:2048 -nodes -sha256 \ -subj '/CN=localhost' -extensions EXT -config <( \ printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
Tetapi sertifikat semacam itu akan menyebabkan kesalahan kepercayaan pada browser karena tidak ada otoritas sertifikasi yang sesuai di toko tepercaya. - Caranya adalah dengan mendaftarkan domain baru seperti localhost.example.com, yang secara lokal memutuskan untuk 127.0.0.1 (di / etc / hosts), untuk mendapatkan sertifikat yang biasa untuk domain ini. Tetapi penipuan semacam itu dipertanyakan dari sudut pandang keamanan - setidaknya untuk layanan publik, penyelesaian seperti itu sangat tidak dianjurkan karena kemungkinan serangan MiTM dengan perubahan ke alamat IP yang tidak bersahabat. Jika kita membatasi diri hanya untuk mesin lokal, maka ini mungkin merupakan opsi yang sesuai, meskipun ada juga beberapa keraguan. Selain itu, sertifikat semacam itu dapat dicabut. Bagaimanapun, ada opsi yang lebih sederhana dan lebih aman (lihat di bawah).
Ini adalah
mkcert , utilitas sederhana untuk menghasilkan sertifikat tepercaya secara lokal dengan
otoritas sertifikasinya sendiri . Ini bekerja di bawah semua OS dan tidak memerlukan konfigurasi apa pun.
Versi Linux
Pertama, Anda perlu menginstal
certutil
.
sudo apt install libnss3-tools -- sudo yum install nss-tools -- sudo pacman -S nss
lalu
brew install mkcert
atau kompilasi dari sumber:
go get -u github.com/FiloSottile/mkcert $(go env GOPATH)/bin/mkcert
Versi MacOS
brew install mkcert brew install nss
Versi Windows
Di bawah Windows, Anda dapat mengunduh
binari yang dikumpulkan atau menggunakan salah satu manajer paket: Chocolatey atau Scoop.
choco install mkcert -- scoop install mkcert
Kehadiran otoritas sertifikat lokal adalah perbedaan mendasar yang paling penting antara mkcert dan openssl dan sertifikat yang ditandatangani sendiri, karena ketika Anda menjalankan CA semacam itu, tidak ada kesalahan kepercayaan terjadi secara lokal.
Pada prinsipnya, Anda dapat memulai dan mengkonfigurasi CA Anda sendiri menggunakan cara lain, tetapi ini membutuhkan pengetahuan dan keterampilan non-sepele. Semuanya dilakukan di sini dengan sendirinya, tanpa kunci dan pengaturan tambahan. Cukup instal program - dan secara otomatis membuat otoritas sertifikasi lokal dan memasukkannya ke penyimpanan tepercaya sistem dan penyimpanan tepercaya Firefox.
$ mkcert -install Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" The local CA is now installed in the system trust store! ️ The local CA is now installed in the Firefox trust store (requires restart)!