Localhost için SSL sertifikası
-
Günümüzde HTTPS kullanımı tüm siteler ve web uygulamaları için zorunlu hale gelmektedir. Ancak, doğru test ile ilgili geliştirme sürecinde bir sorun var. Doğal olarak, Let's Encrypt ve diğer CA'lar localhost için sertifika vermezler, çünkü 1 Kasım 2015'ten itibaren CA/B Forumu bunların verilmesini durdurmak için oy kullandı. Geleneksel olarak, aşağıda açıklanan iki çözüm vardır.
-
-
1
1. Çözüm: Kendinden İmzalı SSL
Openssl veya diğerleri aracılığıyla oluşturulan kendinden imzalı sertifikalar. Localhost için özel bir anahtar ve kendinden imzalı bir sertifika oluşturmanın en kolay yolu:
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")
Ancak böyle bir sertifika, güvenilen mağazada karşılık gelen bir sertifika yetkilisi olmadığı için tarayıcılarda güven hatalarına neden olur.
-
2
2. Çözüm: mkcert
İşin püf noktası, yerel olarak 127.0.0.1'e (/ etc / ana bilgisayarlarda) çözümlenen localhost.example.com gibi yeni bir etki alanı kaydettirmek ve bu etki alanı için olağan sertifikayı almaktır. Ancak bu tür bir dolandırıcılık güvenlik açısından sorgulanabilir - en azından kamu hizmetleri için, düşman bir IP adresinin değiştirilmesiyle olası bir MiTM saldırısı nedeniyle böyle bir çözümleme kesinlikle önerilmez. Kendimizi sadece yerel makineyle sınırlandırırsak, bazı şüpheler olsa da bu uygun bir seçenek olabilir. Ayrıca, bu sertifika iptal edilebilir. Her durumda, daha basit ve daha güvenli bir seçenek var (aşağıya bakın).
Bu, kendi sertifika yetkilisi ile yerel olarak güvenilir sertifikalar oluşturmak için basit bir yardımcı program olan mkcert'tir . Tüm işletim sistemlerinde çalışır ve herhangi bir yapılandırma gerektirmez.
Linux için
İlk önce certutil'i yüklemelisiniz.
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss
Sonra bunu yapın:
brew install mkcert
veya kaynaktan derleyin:
go get -u github.com/FiloSottile/mkcert $(go env GOPATH)/bin/mkcert
MacOS için
Bir sonraki komutu izleyin:
brew install mkcert brew install nss # if you use Firefox
Pencereler için
Toplanan ikili dosyaları indirebilir veya paket yöneticilerinden birini kullanabilirsiniz: Chocolatey veya Scoop.
choco install mkcert -or- scoop install mkcert
-