SSL Sertifikası

PKCS#7 SignedData Yapısı

PKCS#7/CMS, sertifika zincirini özel anahtarsız taşıyan .p7b dosyalarının temelidir. OpenSSL ile PEM'e dönüştürmeyi ve sık hataları anlatıyoruz.

PKCS#7 (bugünkü adıyla CMS, RFC 5652), imzalı veya şifreli verileri taşımak için tasarlanmış bir kap formatıdır. SSL dünyasında ise en çok, sertifika zincirini özel anahtar olmadan tek dosyada dağıtmak için kullanılır; dosyalar .p7b veya .p7c uzantısı taşır.

SignedData yapısının bileşenleri

  • digestAlgorithms: Kullanılan özet algoritmaları.
  • encapContentInfo: İmzalanan içerik. Sertifika paketinde bu kısım boştur ("degenerate" SignedData).
  • certificates: Pakete eklenen X.509 sertifikaları.
  • crls: İsteğe bağlı iptal listeleri.
  • signerInfos: İmzalayan bilgileri ve imza değerleri; sertifika paketinde boş olur.

Yani bir .p7b dosyası çoğu zaman sadece sertifika koleksiyonudur; içinde özel anahtar bulunmaz.

Nerede kullanılır?

  • Windows ve IIS ortamlarında zincir içe aktarma.
  • Bazı Java/Tomcat kurulumlarında zincirin tek seferde aktarılması.
  • Kod imzalamada ve belge imzalamada imzalı veri kabı olarak (CMS/PKCS#7 imzaları).

OpenSSL ile dönüştürme

# P7B içindeki sertifikaları PEM olarak çıkar
openssl pkcs7 -in zincir.p7b -print_certs -out zincir.pem

# DER biçimli P7B ise
openssl pkcs7 -inform DER -in zincir.p7b -print_certs -out zincir.pem

# PEM sertifikalardan P7B oluştur
openssl crl2pkcs7 -nocrl -certfile zincir.pem -out zincir.p7b

Sık hatalar

  • Nginx/Apache'ye doğrudan .p7b yüklemeye çalışmak; önce PEM'e çevirin.
  • Çıkan dosyada sertifika sırasını kontrol etmemek; sunucu sertifikası en üstte, ardından ara sertifikalar gelmelidir.
  • P7B'de özel anahtar aramak; anahtar ayrı tutulur (PKCS#8 veya PFX).

Zincir sorunlarını görmek için SSL denetleme aracını, kod imzalama tarafında ise kod imzalama sertifikalarını inceleyebilirsiniz.

Bu makale faydalı oldu mu?

Bu konuyla ilgili SSL sertifikaları

Makalede geçen sertifika türlerine uygun ürünler.

Makale Ara

SSL Protokol ve Güvenlik

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç