“Güvenilen listesine” kendinden imzalı bir sertifika ekleme


87

Yapım sunucum için kendinden imzalı bir sertifika oluşturdum ve anahtarı kendim yarattığım ve uyarıları görmekten bıktığım için makinemdeki sertifikaya global olarak güvenmek istiyorum.

12.04 Ubuntu'dayım. Nasıl sertifika alabilir ve tarayıcılar (Google Chrome), CLI yardımcı programları (wget, curl) ve programlama dilleri (Python, Java, vb) bağlantı güven böylece küresel güven https://mysite.com sormadan sorular?


Tüm TLS, OpenSSL üzerinden vektörlendirilmelidir, bu nedenle dokümantasyon aranacak yer burasıdır. Bu durumda: gagravarr.org/writing/openssl-certs/… faydalı görünüyor.
msw

Yanıtlar:


87

Buna verilen basit cevap, hemen hemen her uygulamanın farklı şekilde ele alacağıdır.

Ayrıca OpenSSL ve GNUTLS (imzalı sertifikaları işlemek için kullanılan en yaygın kullanılan sertifika işleme kütüphaneleri), aynı zamanda konuyu zorlaştıran cer muamelelerinde farklı davranır. Ayrıca işletim sistemleri, çoğu web sitesi tarafından kullanılan "kök CA" yı kullanmak için farklı mekanizmalar kullanır.

Bu bir yana, Debian'ı örnek olarak vermek. ca-certificatesPaketi yükleyin :

apt-get install ca-certificates

Daha sonra güvenilmeyen CA sertifikanızın (CSR'nızı imzalamak için kullandığınız) genel yarısını CA sertifika dizinine (kök olarak) kopyalarsınız:

cp cacert.pem /usr/share/ca-certificates

Ve sertifikanızı içeren dizini yeniden oluşturmak için root olarak çalıştırın:

dpkg-reconfigure ca-certificates

ve seçmek asksenin sertifikaya ilerleyin seçeneği dahil edilmesi için işaretlemek ve Tamam seçeneğini seçin.

Çoğu tarayıcı kendi CA veritabanını kullanır ve bu nedenle certutiliçeriğinin değiştirilmesinde kullanılan araçların kullanılması gerekir ( libnss3-toolspaket tarafından sağlanan Debian'da ). Örneğin, Chrome ile aşağıdaki satırlar boyunca bir şey çalıştırırsınız:

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file

Firefox, diskteki sertifikaya göz atmanıza, bir sertifika dosyasını tanımanıza ve ardından Kök CA listesine aktarmanıza izin verir.

CA'nıza yönlendirmek curliçin kullanabileceğiniz komut satırı anahtarları gibi çoğu komut

 curl --cacert  /path/to/CA/cert.file https://...

veya SSL onayını tamamen iptal edin

 curl --insecure https://...

ca-certificatesBenzer numara, söz konusu uygulama için sıralamazsa , geri kalanın bireysel soruşturmaya ihtiyacı olacaktır .


Ayrıca, burada belirtildiği gibi , Java için CA sertifikaları eklemek de aynı şekilde ayrı bir konudur.
Naftuli Kay

2
Sertifikayı / usr / share / ca-sertifikalarına kopyaladıktan sonra dpkg-reconfigure ca-certificateslistede göremiyorum . Neyi yanlış yapıyorum?
Georges Dupéron

18
@ GeorgesDupéron Bu başıma geldi. Ben gelen sertifikayı yeniden adlandırarak çözüldü whatever.pemiçin whatever.crt.
Merhaba Dünya


2
Bilginize, adında bir onay dosyası vardı .cerve bu işe yaramadı. Tanınması için yeniden adlandırmam .crtgerekti.
Tri Nguyen,

53

Etkileşimli Olmayan Yaklaşım

Etkileşimli olmayan bir bağlamda (örn. Bir şef tarifi) kullanım için aşağıdaki sırayı kullanabilirsiniz.

sudo cp my.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
  • Debian 5/6 ve Ubuntu 14.04 ile test edildi ve çalışıyor.
  • Daha fazla bilgi için bakınız man update-ca-certificates

Bu yöntem @ Drav'ın metoduna göre tercih edilir, çünkü /usr/share/tipik olarak OS / tarafından eklenen dosyalar için ayrılmıştır apt-get.


4
Dosyaları /usr/local/share/ca-certificates/
kılavuz

3
Bilginize A olmalı .crtben bulundu, .certo eklendi iddia ama yardım etmedi
KCD

6

Fedora 23'te .pem veya .der dosyasını ekleyin /etc/pki/ca-trust/source/anchors/ve çalıştırın sudo update-ca-trust extract.

Ayrıntılar man update-ca-trustiçin bakınız, örneğin / etc veya / usr kullanıp kullanmama.


4

Centos'ta:

cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract

Ne zaman yapmalıyım openssl connectbu / çapa klasörünü belirtmeliyim? Hala bir hata alıyorum "self signed certs
Janac Meena

2


En son debian tabanlı sistemler için Etkileşimli Olmayan Yaklaşım (Eki'18)

Ev sahibinin mağazasına bir sertifika ekleme ile uygulamaların bunları kullanması için onu etkinleştirme arasında bir ayrım var. Mağazadaki mevcut bir sertifika mutlaka kullanılmaz (yine de çok sayıda paketin yine de yanlış olduğunu kabul etmem gerekiyor olsa da)
Bu, paketini /etc/ca-certificate.confalmayı düşünen ve basitçe reddettiğini düşünen bir paket oluştururken kafa karıştırıcı olabilir. hatasız eklendi. update-ca-certificatesSertifikayı /etc/ca-certificate.confveya ekleyerek etkinleştirmeyi (yalnızca kopyalamayı değil, aynı zamanda) açıkça söylemeniz gerekir /etc/ca-certificate/update.d.

CERT=mycert.crt
cp /mypath/to/$CERT /usr/share/ca-certificates/$CERT
    # notice the + sign which tells to activate the cert!!!
echo "+$CERT" >/etc/ca-certificates/update.d/activate_my_cert
dpkg-reconfigure ca-certificates;

Şimdi burada farklı bir yol kullanarak bir sertifikaya dolaylı olarak güvenmenin bir yolu olduğu için kafa karıştırıcı oluyor:

CERT=mycert.crt
cp /mypath/to/$CERT /usr/local/share/ca-certificates/$CERT
update-ca-certificates;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.