Sertifika ve PEM çözücü

PEM'den X.509 sertifikalarını ve sertifika imzalama isteklerini çözer — özne, veren, geçerlilik, alternatif adlar, uzantılar ve parmak izleri.

PEM girdisi

Yukarıya PEM yapıştırın; burada çözülecek.

Bu araç ne yapar

Bir sertifika, iki tire satırı arasında bir Base64 bloğu olarak gelir ve ona bakarak hakkında bir şey söylemenin yolu yoktur. Bu, onu çözer: kime ve kim tarafından verildiği, ne zaman sona erdiği, hangi ana bilgisayar adlarını kapsadığı, ne tür bir anahtar tuttuğu ve taşıdığı her uzantı. Bütün bir zincir yapıştırın, her sertifika bir sonrakine karşı denetlenir.

Tümüyle tarayıcınızda çalışır. Bu, çoğu araçtan daha önemlidir — alternatif genellikle bir üretim sertifikasını başkasının sunucusuna yapıştırmak ya da openssl çağrısını hatırlamaktır, ki bunu neredeyse hiç kimse yapmaz.

PEM yalnızca sargıdır

Tireler ve Base64 ambalajdır. İçeride, ASN.1 denen bir yapının ikili kodlaması olan DER vardır ve tireler arasındaki etiket hangi yapının beklendiğini söyler:

CERTIFICATE           an issued X.509 certificate
CERTIFICATE REQUEST   a CSR: what you asked a CA for
PUBLIC KEY            a bare key with no identity attached
PRIVATE KEY           the secret half, refused here

Aynı sertifika, bir .cer ya da .crt dosyasında tireler ve Base64 olmadan ham DER olarak da gelebilir. Bir dosya metin yerine ikili gürültü olarak açılıyorsa, o odur; önce onu Base64'leyin ya da PEM olarak dışa aktarın.

Bir sertifikanın içinde gerçekte ne var

Çekirdek alanlar, şimdiye dek verilmiş her sertifikada aynıdır:

  • Özne — sertifikanın kim hakkında olduğu. Bir web sitesi için bu artık genellikle yalnızca bir yaygın addır ve çoğu zaman fazlası değildir.
  • Veren — onu imzalayan sertifika yetkilisi. Özne adı, imzaladığı her şeyin vereni olarak olduğu gibi görünür; zincir denetimini olanaklı kılan budur.
  • Geçerlilik — her zaman UTC'de iki mutlak an. Bu araç ikisini de gösterir ve ne kadar kaldığını tarayıcınızda hesaplar, çünkü bu sayfayı üreten yapı makinesinin onu ne zaman okuduğunuza dair hiçbir fikri yoktur.
  • Seri numarası — veren başına benzersiz ve bir sertifika iptal edildiğinde kullanılan tanımlayıcı.
  • İmza algoritması — verenin neyle imzaladığı, örneğin ECDSA ile SHA-256.
  • Genel anahtar — tür ve boyut. RSA için bu, modülün bit uzunluğudur; EC için adlandırılmış eğrinin bir özelliğidir, dolayısıyla P-256 her zaman 256 bittir.

İnsanların beklediği ve artık bulamadığı bir alan: özne yaygın adı, tarayıcıların kontrol ettiği şey değildir. Ana bilgisayar eşleştirmesi için yıllardır yok sayılır. Önemli olan, aşağıdaki özne alternatif adı uzantısıdır.

Çalışıp çalışmadığına karar veren uzantılar

Bir sertifika herhangi bir sayıda uzantı taşıyabilir. Bunların beşi, gerçekten kabul edilip edilmeyeceğini belirler ve bu araç onları tümüyle çözer:

  • Özne Alternatif Adı — sertifikanın geçerli olduğu ana bilgisayar adları, IP adresleri ya da e-posta adresleri. Bu, tarayıcıların kontrol ettiği alandır ve SAN'ı yazdığınız adı listelemeyen bir sertifika, diğer her şey ne kadar doğru olursa olsun reddedilir.
  • Temel Kısıtlamalar — bunun bir sertifika yetkilisi olup olmadığı ve altında kaç ara sertifikanın oturabileceği. Bir CA olarak işaretlenmiş bir yaprak sertifika ya da tersi, zinciri bozar.
  • Anahtar Kullanımı — anahtarın en temelde ne için kullanılabileceği: imzalama, anahtar şifreleme, sertifika imzalama. Neredeyse her zaman kritik olarak işaretlenir, ki bu, yazılımın anlamadığı bir kullanımı yok saymak yerine sertifikayı reddetmesi gerektiği anlamına gelir.
  • Genişletilmiş Anahtar Kullanımı — amaç: TLS sunucusu, TLS istemcisi, kod imzalama, e-posta. TLS sunucu kimlik doğrulaması olmayan bir sertifika bir web sitesi sunmaz ve bu, başka bir şey için verilmiş sertifikalarda yaygın bir sürprizdir.
  • Özne ve Yetkili Anahtar Tanımlayıcı — birkaçı bir adı paylaştığında, yazılımın bir sertifikayı vereniyle hızlıca eşleştirmesini sağlayan kısa hash'ler.

Diğer her uzantı, bilinen bir adı varsa adıyla, OID'siyle ve kritik olarak işaretlenip işaretlenmediğiyle listelenir. Hiçbir şey sessizce düşürülmez: bu aracın çözmediği bir uzantı yine de görünür; böylece orada olduğunu görebilirsiniz.

Zincirler ve burada «bağlı»nın anlamı

Bir sunucu neredeyse hiçbir zaman tek bir sertifika göndermez. Kendisininkini artı istemcinin zaten güvendiği bir köke ulaşmak için gereken ara sertifikaları gönderir. Sıra önemlidir ve dosya genellikle fullchain.pem olarak adlandırılır:

block 1   leaf          subject: example.com     issuer: Example CA R3
block 2   intermediate  subject: Example CA R3   issuer: Example Root
block 3   root          often omitted, since clients have it already

Her sertifika verenini adlandırır ve bir alttaki sertifikanın öznesi tam olarak o ad olmalıdır. Bu araç bu iki adı bayt bayt karşılaştırır ve eşleşip eşleşmediğini söyler. Bu, çevrimdışı denetlenebilen tek ilişkidir ve çoğu zincir sorununun nedeni olan iki başarısızlığı yakalar: dışarıda bırakılmış bir ara sertifika ve yanlış sırada yapıştırılmış bloklar.

Bu başarısızlıkların karakteristik bir belirtisi vardır. Masaüstü tarayıcıları çoğu zaman eksik bir ara sertifikayı kendileri getirerek üzerini örter; böylece site dizüstünüzde iyi görünür ve bir telefonda, bir mobil uygulamada ya da curl'den başarısız olur. Ayıkladığınız şey buysa, önce tam zinciri buraya yapıştırın.

Bu aracın size söylemediği

İmzaları doğrulamaz ve doğrulayamaz. Bir sertifikanın gerçekten vereni tarafından imzalandığını kontrol etmek verenin genel anahtarını gerektirir; o verene inanılıp inanılmayacağına karar vermek bir güven deposunu gerektirir. Yapıştırılan bir dosya hiçbirini sağlamaz. İptali de kontrol edemez, ki bu CA'ya bir ağ isteği gerektirir.

Yani burada «zincir kesintisiz» adların hizalandığı anlamına gelir, zincirin geçerli olduğu değil. Sahte sertifikalardan oluşan bir zincir kusursuzca bağlanırdı. Denetimin işe yaradığı şey, kendi yapılandırmanızdaki yapısal hataları bulmaktır, ki insanların bir zinciri bir çözücüye yapıştırdığında gerçekte baktığı şey budur.

Parmak izleri ve özel anahtarlar

SHA-256 parmak izi, tüm sertifikanın bir hash'idir ve birinin size aktardığı bir değere ya da bir sabitlemeye (pin) karşı karşılaştırdığınız şeydir. Neyi tanımladığına dikkat edin: sertifikayı, içindeki anahtarı değil. Aynı anahtar için bir sertifikayı yenilemek farklı bir parmak izi üretir, ki bu, bir sabitlemenin yenilemede bozulmasının olağan nedenidir. SHA-1 parmak izi de gösterilir, çünkü eski araçlar ve konsollar hâlâ onu yazdırır — yalnızca tanımlama için; SHA-1'in hiçbir şey imzalamada işi yoktur.

Özel anahtarlar tanınır ve reddedilir. Buraya yapıştırılan hiçbir şey tarayıcınızdan çıkmaz, dolayısıyla reddetme bu sayfayla ilgili değildir: bir özel anahtarı bir web formuna yapıştırmak edinilmemesi iyi olan bir alışkanlıktır ve soran bir sonraki site yerel çalışmayabilir. Bir anahtar ile bir sertifikanın birlikte olup olmadığını kontrol etmeniz gerekiyorsa, sertifikadaki genel anahtarı, anahtardan türetilenle yerel olarak karşılaştırın.

Sıkça sorulan sorular

Bu, sertifikamın güvenilir olup olmadığını söyler mi?
Hayır. Güven, bir güven deposuna ve bir imza denetimine bağlıdır; yapıştırılan bir dosyadan ikisi de mümkün değildir. Sertifikanın kendisi hakkında söylediğini ve bir zincirdeki adların hizalanıp hizalanmadığını bildirir.
Sitem dizüstümde Chrome'da çalışıyor ama mobilde başarısız oluyor. Neye bakmalıyım?
Neredeyse her zaman eksik bir ara sertifika. Masaüstü tarayıcıları çoğu zaman eksik sertifikayı kendileri getirir ve sorunu gizler; diğer istemciler getirmez. Tam zincirinizi buraya yapıştırın — iki sertifika arasındaki bağ bozuk olarak bildirilirse, boşluk odur.
Yaygın ad neden sitemle eşleşmiyor?
Çünkü kontrol edilen şey o değil. Ana bilgisayar eşleştirmesi özne alternatif adı uzantısını kullanır ve yıllardır böyle. Alternatif adlar satırına bakın: ana bilgisayar orada listelenmemişse, yaygın ad ne derse desin sertifika onu kapsamaz.
Özel anahtarımı neden çözmüyor?
Bilerek. Yapıştırdığınız hiçbir şey tarayıcınızdan çıkmaz, ama özel anahtarları web sayfalarına yapıştırmak kaçınılması iyi olan bir alışkanlıktır ve bu araç onu öğretmeyi reddeder. Sertifikalar ve imzalama istekleri hiçbir sır içermez ve normal şekilde çözülür.
Bir sertifika ile bir CSR arasındaki fark nedir?
Bir CSR, bir sertifika yetkilisine gönderdiğiniz şeydir: özne adınız, genel anahtarınız ve istediğiniz uzantılar, sizin tarafınızdan imzalanmış. Bir sertifika, verenin kendi adı, bir geçerlilik penceresi ve bir seri numarasıyla geri gelen şeydir. Bu araç ikisini de çözer.
Sertifikam herhangi bir yere gönderiliyor mu?
Hayır. Ayrıştırma, çözme ve parmak izi çıkarma tümüyle tarayıcınızda çalışır; yapıştırdığınız hiçbir şey cihazınızdan çıkmaz.