mkcert adalah alat sederhana untuk membuat sertifikat pengembangan yang dipercaya secara lokal. Itu tidak memerlukan konfigurasi.
$ mkcert -install Created a new local CA ? The local CA is now installed in the system trust store! ⚡️ The local CA is now installed in the Firefox trust store (requires browser restart)! ? $ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1 Created a new certificate valid for the following names - "example.com" - "*.example.com" - "example.test" - "localhost" - "127.0.0.1" - "::1" The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
Menggunakan sertifikat dari otoritas sertifikat (CA) yang sebenarnya untuk pengembangan bisa berbahaya atau tidak mungkin dilakukan (untuk host seperti example.test
, localhost
atau 127.0.0.1
), namun sertifikat yang ditandatangani sendiri menyebabkan kesalahan kepercayaan. Mengelola CA Anda sendiri adalah solusi terbaik, tetapi biasanya melibatkan perintah misterius, pengetahuan khusus, dan langkah manual.
mkcert secara otomatis membuat dan menginstal CA lokal di penyimpanan root sistem, dan menghasilkan sertifikat yang dipercaya secara lokal. mkcert tidak secara otomatis mengkonfigurasi server untuk menggunakan sertifikat, itu terserah Anda.
Peringatan : file
rootCA-key.pem
yang dihasilkan mkcert secara otomatis memberikan kekuatan penuh untuk mencegat permintaan aman dari mesin Anda. Jangan membagikannya.
Di macOS, gunakan Homebrew
brew install mkcert brew install nss # if you use Firefox
atau MacPorts.
sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox
Di Linux, instal terlebih dahulu certutil
.
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss -or- sudo zypper install mozilla-nss-tools
Kemudian Anda dapat menginstal menggunakan Homebrew di Linux
brew install mkcert
atau membangun dari sumber (membutuhkan Go 1.13+)
git clone https://github.com/FiloSottile/mkcert && cd mkcert go build -ldflags "-X main.Version=$(git describe --tags)"
atau gunakan biner yang sudah dibuat sebelumnya.
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" chmod +x mkcert-v*-linux-amd64 sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
Untuk pengguna Arch Linux, mkcert
tersedia di repositori resmi Arch Linux.
sudo pacman -Syu mkcert
Di Windows, gunakan Chocolatey
choco install mkcert
atau gunakan Scoop
scoop bucket add extras scoop install mkcert
atau membangun dari sumber (membutuhkan Go 1.10+), atau menggunakan biner yang sudah dibuat sebelumnya.
Jika Anda mengalami masalah izin, coba jalankan mkcert
sebagai Administrator.
mkcert mendukung penyimpanan root berikut:
penyimpanan sistem macOS
Penyimpanan sistem Windows
Varian Linux yang menyediakan keduanya
update-ca-trust
(Fedora, RHEL, CentOS) atau
update-ca-certificates
(Ubuntu, Debian, OpenSUSE, SLES) atau
trust
(Arch)
Firefox (khusus MacOS dan Linux)
Chrome dan Kromium
Java (saat JAVA_HOME
disetel)
Untuk hanya menginstal CA root lokal ke dalam subsetnya, Anda dapat mengatur variabel lingkungan TRUST_STORES
ke daftar yang dipisahkan koma. Pilihannya adalah: "system", "java" dan "nss" (termasuk Firefox).
-cert-file FILE, -key-file FILE, -p12-file FILE Customize the output paths. -client Generate a certificate for client authentication. -ecdsa Generate a certificate with an ECDSA key. -pkcs12 Generate a ".p12" PKCS #12 file, also know as a ".pfx" file, containing certificate and key for legacy applications. -csr CSR Generate a certificate based on the supplied CSR. Conflicts with all other flags and arguments except -install and -cert-file.
Catatan: Anda harus menempatkan opsi ini sebelum daftar nama domain.
mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
mkcert secara otomatis menghasilkan sertifikat S/MIME jika salah satu nama yang diberikan adalah alamat email.
mkcert [email protected]
Agar sertifikat dapat dipercaya di perangkat seluler, Anda harus menginstal root CA. Itu adalah file rootCA.pem
di folder yang dicetak oleh mkcert -CAROOT
.
Di iOS, Anda dapat menggunakan AirDrop, mengirimkan CA melalui email ke diri Anda sendiri, atau menyajikannya dari server HTTP. Setelah membukanya, Anda perlu menginstal profil di Pengaturan > Profil Diunduh dan kemudian mengaktifkan kepercayaan penuh padanya.
Untuk Android, Anda harus menginstal CA dan kemudian mengaktifkan root pengguna dalam pengembangan aplikasi Anda. Lihat jawaban StackOverflow ini.
Node tidak menggunakan penyimpanan root sistem, sehingga tidak akan menerima sertifikat mkcert secara otomatis. Sebagai gantinya, Anda harus menyetel variabel lingkungan NODE_EXTRA_CA_CERTS
.
export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
Sertifikat CA dan kuncinya disimpan dalam folder data aplikasi di rumah pengguna. Biasanya Anda tidak perlu khawatir, karena instalasi dilakukan secara otomatis, tetapi lokasinya dicetak oleh mkcert -CAROOT
.
Jika Anda ingin mengelola CA terpisah, Anda dapat menggunakan variabel lingkungan $CAROOT
untuk mengatur folder tempat mkcert akan ditempatkan dan mencari file CA lokal.
Penginstalan di penyimpanan kepercayaan tidak memerlukan kunci CA, sehingga Anda dapat mengekspor sertifikat CA dan menggunakan mkcert untuk menginstalnya di komputer lain.
Cari file rootCA.pem
di mkcert -CAROOT
salin ke mesin lain
setel $CAROOT
ke direktorinya
jalankan mkcert -install
Ingatlah bahwa mkcert dimaksudkan untuk tujuan pengembangan, bukan produksi, sehingga tidak boleh digunakan pada mesin pengguna akhir, dan Anda tidak boleh mengekspor atau membagikan rootCA-key.pem
.