Curl'de wget gibi bir --no-check-sertifika seçeneği var mı?


446

Kendinden imzalı bir SSL sertifikası olan bir dev sitesi çalıştıran yerel geliştirme sunucularımızdan birine curl isteği yapmaya çalışıyorum. Curl komut satırından kullanıyorum.

Gibi - Ben bazı blog yayınlarının, sertifikaların listesine eklemek ya da (öz imzalı) geçerli olarak sertifika bir özgü belirtmek fakat ssl sertifikası "doğrulamazsanız" demenin bir catch-all yolu yoktur ki söz gördü --no-check-certificateo wget var mı?


Yanıtlar:


594

Evet. Gönderen man :

-k, --güvenilmez

(TLS) Varsayılan olarak, her SSL bağlantısının kıvrılması, güvenli olduğu doğrulanır. Bu seçenek, kıvrılma işleminin, başka türlü güvensiz sayılan sunucu bağlantıları için bile devam etmesini ve çalışmasını sağlar.

Sunucu bağlantısı, sunucunun sertifikasının doğru adı içerdiğinden ve sertifika deposunu kullanarak başarıyla doğrulandığından emin olarak doğrulanır.

Daha fazla bilgi için bu çevrimiçi kaynağa bakın: https://curl.haxx.se/docs/sslcerts.html

Ayrıca bakınız - proxy-güvensiz ve --cacert.

Bu manpage girişinde belirtilen referans bazı özel davranışlarını açıklar -k.

Bu davranışlar BadSSL.com’dancurl sayfaları test etme istekleriyle gözlenebilir.

curl -X GET https://wrong.host.badssl.com/
curl: (51) SSL: no alternative certificate subject name matches target host name 'wrong.host.badssl.com'

curl -k -X GET https://wrong.host.badssl.com/
..returns HTML content...

11
Kısa bir seçenek bir seçenek olduğu gerçeğini seviyorum
kizzx2

Bu seçeneği varsayılan yapmak için curl config içinde herhangi bir yolu var mı?
kazanır.

4
@Wins, bu korkunç bir fikir olurdu. Tekrar tekrar kullanmanız gerekirse bir takma ad verin, böylece ne yaptığını bilir ve yanlışlıkla şifrelerinizi şifrelenmemiş olarak göndermezsiniz. alias insecure-curl="curl -k"
Alexander Huszagh

2
@AlexanderHuszagh İş yerinde, yalnızca kendinden imzalı bir sertifikaya sahip tek bir sunucudan kıvrılma kullanıyorum; hiçbir zaman tam sertifika kontrolü yapmak istemiyorum. Sırf bir şeyin çoğu durumda korkunç bir fikir gibi görünmesi, her zaman olduğu anlamına gelmez.
Daniel H,

4
@DanielH Bu yüzden bir takma ad önerdim: bu yüzden güvensiz olduğuna dair açık bilgi ile ek kolaylık elde edersiniz. İş akışları değişir: ancak kolaylık sağlamak için güvenliğinizde işlem yaparken sınırlı bir şekilde bilmeniz gerekir.
Alexander Huszagh

36

Tüm bağlantılar için değişiklikleri uygulamak için aşağıdaki komutu kullanabilirsiniz:

$ echo insecure >> ~/.curlrc

Windows'ta sadece oluşturmak _curlrciçin onun içine 'güvensiz' metin ile metin dosyası %HOME%, %CURL_HOME%, %APPDATA%, %USERPROFILE%veya %USERPROFILE%\Application Datadizindeki.

Yukarıdaki çözümü kullanmanın avantajı, tüm curlkomutlar için işe yaramasıdır, ancak güvensiz ve güvenilmeyen ana bilgisayarlara bağlanarak MITM saldırıları getirebileceği için önerilmez .


72
Bu kötü bir tavsiye gibi gözüküyor: bunu kullanıcı başına yapılandırma ile kendiniz yapsanız bile, tüm bağlantılar için bu kontrolleri devre dışı bırakmak varsayılan olmamalıdır. Güvenlik kontrollerini bastırmanız gerekirse, en azından parça parça yapın.
Christopher Schultz

4
Ne zaman curl kullansam, makineyi diğer taraftan kontrol ediyorum ya da güveniyorum.
Eric Hartford

11
@EricHartford: Peki, sizin için iyi, ama bu hala onu iyi bir genel tavsiye yapmaz. Örneğin, osx üzerine homebrew indirirken ve araçların değiştirilmiş bir versiyonuyla sonuçlanırken, bunu varsayılan olarak kör olarak etkinleştirdiği için curl kullanılabilir.
02'de

10
Ayrıca @EricHartford, her zaman güvenilir kıvrılma işleri yaptığınızdan emin misiniz? İnternetten çıkardığınız herhangi bir bash betiğini hiç koştunuz mu? Verilmiş, orada yine de siyah olabilir, ancak bu şansı artırır.
Zlatko

Bu gerçek @EricHartford. Önceki mesaj beni taklit eden başka biri tarafından gönderildi. Çünkü tüm makinelere güvenmiştim ;-)
Anand Rockzz

5

Kendinden imzalı bir sertifika kullanıyorsunuz. CA'yı neden güvenilir CA paketinize (Linux) eklemiyorsunuz ya da güvenilir Sertifika deposuna (windows) eklemiyorsunuz? Veya --cacert /Path/to/filegüvenilir, kendinden imzalı sertifika dosyanızın içeriğiyle birlikte kullanın .

Diğer cevaplar, wgetkarşılaştırılabilir olanlara göre soruyu cevaplamaktadır . Ancak asıl soru, kullanarak kendinden imzalı bir sertifika ile güvenilir bir bağlantıyı nasıl koruyacağım curl. Pek çok yoruma dayanarak, güvenlik bu cevaplardan herhangi birinde en önemli endişedir ve en iyi cevap, kendinden imzalı sertifikaya güvenmek ve curlgüvenlik kontrollerini sağlam bırakmak olacaktır .

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.