Varsayılan CA Sertifika Paketi Konumu


18

Varsayılan CA sertifika paketime bir .pem sertifika dosyası eklemem gerekiyor, ancak varsayılan CA Sertifika paketinin nerede tutulduğunu bilmiyorum.

Bu varsayılan pakete yeni .pem dosyamı eklemem gerekiyor. --Capath kullanarak kendi konumumu belirtmek yerine bunu yapmayı tercih ederim

cURL nereye bakacağını açıkça biliyor ama yerini gösteren herhangi bir cURL komutu görmüyorum. Bu konumu ortaya çıkaracak bir komut var mı? Nasıl bulabilirim?

CURL'ye göre:
Sunucunuz için CA sertifikasını mevcut varsayılan CA sertifikası paketine ekleyin. Kullanılan CA paketinin varsayılan yolu, --with-ca-bundle seçeneğiyle yapılandırmayı çalıştırarak ve seçtiğiniz yolu işaret ederek değiştirilebilir.

Teşekkürler


Hangi işletim sistemini kullanıyorsunuz?
Cristian Ciupitu

Yanıtlar:


20

Koşu curlile stracesize bir ipucu verebilir.

strace curl https://www.google.com | & grep açık

Çok sayıda çıktı, ama hemen sonuna kadar görüyorum:

açık ("/ etc / ssl / certs / 578d5c04.0", O_RDONLY) = 4

bu benim sertifikalarımın saklandığı yer.


2
Bana göstermek için +1 strace!
Robert Dundon

straceGörünüşe göre macOS'ta mevcut değil. "Eşdeğer" dtrussanlattı "dtrace: dtrace başlatılamadı: DTrace ek ayrıcalıklar gerektirir". Ben sudode onunla kullandım . "Dtrace: curl: dtrace yürütülemedi" kısıtlı yetkilerle imzalanmış yürütülebilir dosyaları kontrol edemez ". Çok yardımcı değil.
LS

17

Kıvrımın 'bin /' dizininde, yani 'kıvırma' ikili dosyasının bulunduğu bir 'curl-config' programı olmalıdır.

./curl-config --ca

ca paket kurulum yolunu verir.

Ben sadece bir whatis curl-config yaptım: "Bir libcurl kurulumu hakkında bilgi alın" bu yüzden sadece standart olsa varsayıyorum libcurl yüklüyse kullanılabilir olacağını tahmin ediyorum.


1
Bunu çalıştırmak için Ubuntu'ya bir paket kurmam gerekiyordu (yüklü değilse mevcut seçeneklerin bir listesi gösterilecek), ancak bu komutu kullanmak beni doğru yere götürdü!
Robert Dundon

2
curl-configProgram program veya kurulumları tüm sürümleriyle kullanılamaz. Örneğin, bazı yöneticiler programın amacını anlamayabilir ve yalnızca bir yapı yapılandırma aracı olduğunu düşündükleri için yüklemeyebilir. Ayrıca, programa ihtiyaç duyan kullanıcı bir sistemin yöneticisi değilse, yükleyemez. İki sisteme erişimim var, biri bu programa sahip değil, diğeri için çıktı vermiyor curl-config --ca.
LS

Bu cevabı kabul edilene tercih ederim - straceyapılandırma bilgilerini bulmak için kullanmak gerekli olmamalıdır.
Ken Williams

7

Kolay bir yol buldum: yanlış dosya adı --cacertile kullanın , çıkış yolu gösterecektir.

Misal:

~$ curl --cacert non_existing_file https://www.google.com
curl: (77) error setting certificate verify locations:
  CAfile: non_existing_file
  CApath: /etc/ssl/certs

Bunun iyi bir çözüm gibi göründüğünü düşündüm. Ancak, curl bana "77" hatası verdi, ancak ek bilgi vermedi.
LS

@LS ayrıntılı bayrağı eklemeyi deneyin: -v veya --verbose
Chananel P

2

Linux (Ubuntu, Debian)

CA'nızı dir / usr / local / share / ca-certificate /

sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

CA mağazasını güncelleme

sudo update-ca-certificates

CA'nızı kaldırın ve CA deposunu güncelleyin:

sudo update-ca-certificates --fresh

Linux (CentOs 6)

Ca-certificate paketini kurun:

yum install ca-certificates

Dinamik CA yapılandırma özelliğini etkinleştirin: update-ca-trust force-enable Aşağıdakilere yeni bir dosya olarak ekleyin /etc/pki/ca-trust/source/anchors/:

cp foo.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract

Linux (CentOs 5)

Güvenilir sertifikanızı dosyaya ekleyin /etc/pki/tls/certs/ca-bundle.crt

cat foo.crt >>/etc/pki/tls/certs/ca-bundle.crt

https://manuals.gfi.com/tr/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html açıklayan çok güzel bir bağlantı, birkaç popüler işletim sistemine nasıl eklenir.


Bu teorik olarak soruyu cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak tercih edilir.
Gerald Schneider

@GeraldSchneider> yorum okudunuz ve
harekete geçtiniz


1

-v URL'de https ile.

$ curl -v https://google.com
* Rebuilt URL to: https://google.com/
* timeout on name lookup is not supported
*   Trying 172.217.9.174...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to google.com (172.217.9.174) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   *CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt*

Hayır! Benim için böyle bir şey göstermedi. Aslında, bunun çıktısını -kbir fark olup olmadığını görmek için seçenek ekleyerek başka bir çalışma ile karşılaştırdım . Fark yoktu.
LS

@LS URL'nizde https var mı?
Philip Rego

0

Varsayılan CA paketi konumu işletim sistemine bağlıdır. RHEL5'te /etc/pki/tls/certs/ca-bundle.pem adresinde bulunur. Linux veya linux dışı işletim sistemlerinin diğer tatlarında, farklı bir konumda olabilir.


Sanırım sadece o dosyayı
ararım

2
Başka bir fikir: # dizeleri /usr/lib64/libcurl.so.3 | egrep '^ /' /etc/pki/tls/certs/ca-bundle.crt
offby1
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.