Soru ssl sertifikasını bir web sitesinden nasıl indirebilirsiniz?
Ssl sertifikasını indirmek istiyorum https://www.google.com, wget veya diğer komutları kullanarak. Herhangi bir unix komut satırı? Wget veya openssl?
Sertifikayı indirmek için, openssl içine gömülmüş istemciyi kullanmanız gerekir:
Bu sertifikayu /tmp/$SERVERNAME.cert.
Kullanabilirsiniz -showcerts zincirdeki tüm sertifikaları indirmek isterseniz. Ancak sadece sunucu sertifikasını indirmek istiyorsanız, belirtmeye gerek yoktur. -showcerts
echo -n sunucuya bir yanıt verir, böylece bağlantı serbest bırakılır
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' sertifika zinciri ve bağlantı detayları ile ilgili bilgileri kaldırır. Sertifikayı diğer anahtar sözcüklere aktarmak için tercih edilen biçim budur.
Sadece iyi bir cevap vermediğinizi değil, aynı zamanda kesin bir açıklama yaptığını takdir edin. - marco.m
does -showcerts sunucu / yaprak sertifikasını da gösterecek misiniz? Sadece bu anahtarın dahil edildiğinde ara ürün görüntülediğini düşündüm. - Mike B
Cevabın dediği gibi, s_client her zaman sunucu sertifikasını gösterir (eğer varsa, yani sunucu merhaba yanıt verir ve anonim bir paket seçmez). -showcerts gösterileri herşey Alınan sertifikalar, önce sunucu sertifikası, daha sonra ara ve / veya kök. - dave_thompson_085
Bu olsa da, bir vekilin varlığında işe yaramıyor. - Frederick Nord
Bu ayrıca, SNI kullanan sunucularla da çalışmaz (tek bir IP adresindeki birden çok sertifika / etki alanı). Sorunlardan kaçınmak için, openssl servername parametresini belirtin: openssl s_client -connect HOST: PORTNUMBER -servername CN - verhage
Cevabı buldum. Openssl bunu sağlar.
Ayrıca openssl x509 -text <<EOF cert-text EOF sertifikanın detaylarını görmek için - mpapis
sudo rm -f cert.pem && sudo echo -n | openssl s_client -connect localhost:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./cert.pem nezaket serverfault.com/questions/139728/... - pulkitsinghal
bu aynı şeyi başarır ve atlar sed kesmek. - phs
Bu yalnızca bir sertifikayı kontrol eder, eğer hizmet, her biri farklı bir kök CA tarafından imzalanmış farklı bir sertifikaya sahip, yük dengeli bir sunucu grubunun parçasıysa ne olur? Başka bir deyişle, bir mitm saldırısı bu talebin gerçek alana gitmesine izin verebilir ve ardından diğer isteklerini sunucularına yönlendirebilir. Bunu kontrol etmenin herhangi bir yolu var mı? Ve bir alanın gerçekten sahip olduğu tüm sertifikaların bir listesini almak için? - Jens Timmerman
@JensTimmerman "Ya da başka bir deyişle, bir mitm saldırısı bu talebin gerçek alana gitmesine izin verebilir ve ardından diğer isteklerini sunucularına yönlendirebilir." Bu durumda, ortadaki adam hedef sunucu için geçerli bir sertifika yoksa (veya istemci aptalca sunucu sertifikasını kontrol etmiyorsa) mümkün değildir. Belli ki, eğer sunucu bazen farklı bir sertifika sunuyorsa, büyük olasılıkla bağlantı denemelerini tekrarlayarak muhtemelen hepsini almayı umuyor olabilirsiniz. - David Tonhofer
GnuTLS istemci aracı gnutls-cli, ayrıca bunu kolaylaştırabilir:
Program siteye etkileşimli bir istemci sağlamak için tasarlanmıştır, bu yüzden boş giriş vermeniz gerekir (bu örnekte, /dev/nulletkileşimli oturumu sonlandırmak için.
nasıl gnutls (sistem geniş yapılandırılmış) https proxy üzerinden bağlanır ve exchages sertifikasını yazdırır? - Frederick Nord
bignose cevabına dayanarak, burada örneğin iyi bir şekilde uyan, kendine yeterli bir versiyon. bir şef tarifi:
openssl bu modu stdin bekliyor, bu yüzden true |Bu, -connect parametresinde belirtilen sunucuya bağlanır. 2>/dev/null sessizlik hataları (isteğe bağlı), tüm çıktıyı x509 ayrıştırıcısına geçirebiliriz, belirterek /dev/stdin kabuk borusunu giriş dosyası olarak kullanmak. Ve bu sadece çıktı -----BEGIN CERTIFICATE----- için -----END CERTIFICATE----- kısmı s_client çıktı. Ekleyerek bunu bir dosyaya yönlendirebilirsiniz. > google.com.pem Komutun sonuna.
En iyi şekilde anlayabildiğim gibi, bu sertifika zincirini doğrulamaz, yalnızca son sunucunun sağladığı ssl kimliğini size söyler.
(1) Bu, 6 yıl önceki cevapları gerçekten iyileştirmiyor (2) x509 varsayılan olarak stdin okur -in /dev/stdin gereksizdir (3) s_client sunucu sertifikasını doğru bir şekilde yerel bir güven istasyonuna (kök) doğrular ve beklenmedik bir şekilde doğrular, ancak bunu gösterecek bilgileri bastırırsınız (4) iptal için denetlemez (5); isim sunucuda sadece 1.0.2'de sertifikalandırılır ve sonra varsayılan olarak değil (daha sonra cert'e bakarak kendiniz kolayca kontrol edebilirsiniz) - dave_thompson_085
@ dave_thompson_085, sorunun nasıl sertifika indirileceği, ancak zincir bilgisinin nasıl gösterileceğidir. Openssl x509'u başka bir cevapta sed'den çok daha iyi seviyorum. - Der_Meister
Ex ve proses ikamesini kullanarak alternatif sözdizimi:
Windows yönlendirilebilir bir IPv6 adresi olmasa bile IPv6 AAAA kayıtlarını aramaya çalışır mı? Bir sunucuya yüzlerce bağlantı, IE8'deki 10'dan fazla sekmeyi açmadan mı? Windows'da hazırda bekletme modunu kullanmamanın bir nedeni var mı? Ubuntu'da “unzip” dışında bir dosyayı açmak için başka seçenekler var mı? [kapalı] Ansible group_vars değişken önceliği (group_vars diğer grup_varlarını geçersiz kılar) Windows XP'deki Görev Zamanlayıcısı, önemli görevlerle güvenilecek kadar güvenilir midir? SSH eşdeğeri .profile / .bashrc