2013-07-22 19 views
5

kullanarak bir .p12 dosyasındaki birden çok anahtarı ayıklayın Bir Apple .p12 dosyasındaki anahtarların nasıl çıkarılacağını merak ediyorum. Benim sınırlı anlayışından, bir .p12 dosyası X504 sertifikaları ve özel anahtarların birleşimidir.OpenSSL ruby ​​

Çalıştığım her .p12 dosyasının bir X504 sertifikası ve en az bir anahtarı ve bazı durumlarda iki anahtarı olduğunu görüyorum. Bu, her .p12'nin bir Apple geliştirici anahtarına sahip olması ve bazılarının ekstra bir anahtarının (muhtemelen bir Apple kök yetkilendirme anahtarı) bulunması gerçeğinden kaynaklanmaktadır. Sadece iki anahtar ile geçerli olan .p12 dosyalarını düşünüyorum. Buradaki amacım, bir anahtarı olan ve iki tane olan .p12 dosyaları arasında ayrım yapmaktır.

Şimdiye kadar X504 dosyalarını ve .p12 tuşlarını denetleyebilmek için OpenSSL kullanmıştım.

#<OpenSSL::PKCS12:0x007fcf33018920> 
#<OpenSSL::X509::Certificate subject=/UID=FFBMT4K5/CN=iPhone Distribution: A.H. Belo Management Services, Inc./OU=FFBMT4K5/O=FFBMT4K5/C=US, issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority, serial=36597980220620, not_before=2012-01-11 16:30:22 UTC, not_after=2013-01-10 16:30:22 UTC> 

Şimdi benim sorunum oluyor tuşları:

Dir.glob('*.p12').each do |p| 
    file = File.read(p) 
    p12 = OpenSSL::PKCS12.new(file, "") 

    # note that this new certificate is in an X509 format 
    cert = p12.certificate 
    puts p12.inspect() 
    puts cert.inspect() 
end 

Bu benim çıktısı: Mesela ben bir dizindeki tüm .p12 dosyalar için denetimler yapar bu kodu var. Böyle bir şey yaparsanız:

puts p12.key 

Böyle şifrelenmiş veriler üzerinde uzun dize olsun:

-----BEGIN RSA PRIVATE KEY----- 
MIIEowIBAAKCAQEA4Pet7CZrPr4x/SKjMwy5avXmcguzQlix/vBq+qq7aKQhctKr 
d5HE7wk4jWbDGj7Rf9ckeFFMktTTbKYmnKCywCct/uJmgavFl1+t45DIQL2V1JMU 
JSXvtjDXoKFweKQgdiha5mBNL70+ivqxMzJJw19E+MhFoZ6tFOgQ5gPLcDLR5WTU 
ezxH9RbXGWbq+CMBjJ+lw8/Ako7IOm+d95ZTM6u333qp0dsn+1/I/zGeWE1gJXIl 
8mIkvrp7+BDTvXHYALADwXnXijqvd/bANfetsDQ+gxRnc06dFt114JUuptcXGwbg 
//ykDzNYhuibQD1Z65KfTB/ntQ1aE5FtHEXirwIDAQABAoIBACNCrt/0pZqP9QXY 
B/xYYjeBkz0M2GvtuvhadmoTmIwuLY/xtS5oipVsvJBtKudSMUP4VJ8HHxlkgj7l 
S+gAyAOWIH9yvN5WLgIr3PVuG/UJwhIve1jXOVs1DJcAtsAx+WSLrrOtJGv3HXZr 
FJsRpr4YkJbtzPwoArjkJsHmllxfT2zeQPMJy+RQ/qlHUqsude/ahC0I3RiW3SgB 
EKTNM1vGTEkox8bUUhHqNY3ERlihFpZC2wSkroETDY3RkSjuPkNy7uT/b66a/qjj 
qaIA0YLhNOYGdN2llJN5GJjYYVKakpiipqcHCFrV1+JtbFB2tKhqAvK6fjCZcSFF 
fW58owECgYEA/g8FvAPcejPR3O8E1ydNWChhd9UZQUeQNCET+lY3Dxwklk+u1140 
yw/u2hUoNdJLfev1HtlYruglD9jW/LGoLaPodQfcHcaCSfdJa1mmKfSieApOe15+ 
ijO3WpZK/MJUTteGVMW/B/QnxPBGtsDo6q2v2YxA7fOhzmImn5hgxlsCgYEA4q/A 
DBKe1WDZPUyG3R/Cfl5AEqEHly6VkCPFF+uYFZzep/SN/ez34r7fmcfl0RL7H9kn 
Q4WBaCMbCgG9dErORW99usoBsjys5pojstNJDZwACUg9rPnV/+uUqMyocjeN0Vrl 
2Vg0dC8HH1hLZPLkp+MAy2nNzmnnHcTKiTqsDT0CgYEApVzfzaXxvvS1t4k37Fbf 
h+8YqefhfVT4LoYNO9ccFVCrG88XrYTa9gUT4Yz91DJiAr8vl/m+OHJPlUX9gRKd 
tb9HEc2g3xyTN1OmzSHX/t0FVv7WYIR79rZ8tJC4lFZki8DK5aikk6e+rvf5/wAH 
WqDcocwhgwAeJHhMTXrgGpsCgYBGYqWx2fJBdNHfK6zQafUdAazJXACcW5WK7OBc 
vgU56Lxl0BRqnLKXUAbjm+Lq2Qbqa6W6XHDC4euaXtHxkuybOLQEVIbUTeytqXye 
IOaU+DQ2rZyg4e4liYNeKjW/SSqar6ugobefv55piCPY02ZWDrEHd/G0PsPJRXpR 
w8r6TQKBgFMoEZKywokRIbMCUHHRR3TVeizBMhbNUUmOiRhzsHZPJ2V63PNp3L1c 
0NsRo62mbekXDRH8J0C8fLG4R64Y7+rHBQo0tBpgYepPU0NCrsojF7brtYYb3VqI 
baVEPRhIy2tJylDad6M36DeOCIhvXalh8GaV/HhEr4lxykth+mGH 
-----END RSA PRIVATE KEY----- 

Sorum Ben de bu sertifika birden fazla anahtar olup olmadığını belirlemek ve nasıl olduğunu Bilgi için anahtarları nasıl kontrol edebilirim. Eğer bu soruyu soruyorsam veya bu konudaki anlayışım temelden hatalıysa, lütfen bana bildirin. Bu benim ilk kez sertifikalara maruz kalmam ve herhangi bir bilgi çok yardımcı olacak. Doğru yönde herhangi bir puan takdir edilecektir, şimdiden teşekkürler.

DÜZENLEME: Bir .p12 iki kefen keybags görebilirsiniz OpenSSL'yi kullanma

. Örnek:

openssl pkcs12 -in some_p12.p12 -info -noout 

çıkışı:

Enter Import Password: 
MAC Iteration 1 
MAC verified OK 
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048 
Certificate bag 
Certificate bag 
PKCS7 Data 
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048 
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048 

Bu yüzden bir kaç şey arıyorum. Genel olarak, bu anahtarlıklar tam olarak nedir? Ve ayrıca, bunları nasıl kontrol edebilirim/Ruby kullanarak .p12 dosya başına kaç tane olduğumu belirleyebilirim. Teşekkürler.

cevap

0

A .p12 yalnızca 1 özel anahtar içerir ve 1 veya daha fazla genel anahtar içerir. Ortak anahtarlar güven zincirini oluşturanlardır.

.p12, ikili bir biçimidir. Dönüştürmek ve tek tek sertifikalara özümlemek için, örneğin here örneğine bakın. Bağlantı, ihtiyacınız olan tüm openssl komutlarını içerir.