Birisi bana .pem
dosyasından sertifika .crt
ve özel anahtar .key
dosyalarını çıkarmanın/dönüştürmenin doğru yolunu/komutunu söyleyebilir mi? Az önce birbirleriyle değiştirilebildiklerini okudum ama nasıl olduğunu bilmiyorum.
OpenSSL Kullanarak Dönüştürme Bu komutlar, sertifikaları ve anahtarları belirli sunucu veya yazılım türleriyle uyumlu hale getirmek için farklı biçimlere dönüştürmenize olanak tanır.
DER dosyasını (.crt .cer .der) PEM'e dönüştürme openssl x509 -inform der -in certificate.cer -out certificate.pem
PEM dosyasını DER'e dönüştürme openssl x509 -outform der -in certificate.pem -out certificate.der
Özel anahtar ve sertifikalar içeren bir PKCS#12 dosyasını (.pfx .p12) PEM'e dönüştürme openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes Yalnızca özel anahtarın çıktısını almak için -nocerts veya yalnızca sertifikaların çıktısını almak için -nokeys ekleyebilirsiniz.
Bir PEM sertifika dosyasını ve özel anahtarı PKCS#12'ye (.pfx .p12) dönüştürme openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
PEM'ü CRT'ye (.CRT dosyasına) dönüştürme openssl x509 -outform der -in certificate.pem -out certificate.crt OpenSSL Convert PEM
PEM'i DER'e dönüştürme openssl x509 -outform der -in certificate.pem -out certificate.der
PEM'i P7B'ye dönüştürme openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
PEM'i PFX'e dönüştürme openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt OpenSSL Convert DER
DER'i PEM'e dönüştürme openssl x509 -inform der -in certificate.cer -out certificate.pem OpenSSL Convert P7B
P7B'yi PEM'ye dönüştürme openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
P7B'yi PFX'ye dönüştürme openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer OpenSSL Convert PFX
PFX'i PEM'e dönüştürme openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes OpenSSL ile rsa anahtarları oluşturun
Komut satırında OpenSSL kullanarak öncelikle bir genel ve özel anahtar oluşturmanız gerekir, -passout argümanını kullanarak bu dosyayı parola korumasına almalısınız, bu argümanın alabileceği birçok farklı biçim vardır, bu nedenle bu konuda OpenSSL belgelerine bakın. openssl genrsa -out private.pem 1024
Bu, private.pem adında 1024 bit kullanan bir anahtar dosyası oluşturur. Bu dosya aslında hem özel hem de genel anahtarlara sahiptir, bu nedenle genel olanı bu dosyadan çıkarmalısınız: openssl rsa -in private.pem -out public.pem -outform PEM -pubout veya
openssl rsa -in private.pem -pubout > public.pem
veya
openssl rsa -in private.pem -pubout -out public.pem
Artık sadece açık anahtarınızı içeren public.pem dosyasına sahip olacaksınız, bunu 3. taraflarla özgürce paylaşabilirsiniz. Açık anahtarınızı kullanarak bir şeyi kendiniz şifreleyerek ve ardından özel anahtarınızı kullanarak şifresini çözerek her şeyi test edebilirsiniz, önce şifrelemek için biraz veriye ihtiyacımız var:
Örnek dosya : echo 'çok fazla sır' > dosya.txt
Şimdi file.txt dosyasında bazı verileriniz var, bunları OpenSSL kullanarak şifreleyelim ve açık anahtar: openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Bu, file.txt dosyasının file.ssl olarak adlandırılan şifrelenmiş bir sürümünü oluşturur, eğer Bu dosyaya baktığınızda sadece ikili bir çöp olduğunu görürsünüz. herhangi biri. Şimdi özel anahtarı kullanarak şifrelemeyi kaldırabilirsiniz: openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
Artık decrypted.txt dosyasında şifrelenmemiş bir dosyanız olacak: cat decrypted.txt |output -> çok fazla sır OpenSSL'de RSA TOOLS Seçenekleri
İSİM
rsa - RSA anahtar işleme aracı
SYNOPSIS
openssl rsa [-help] [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id]
AÇIKLAMA
rsa komutu RSA anahtarlarını işler. Çeşitli formlar arasında dönüştürülebilir ve bileşenleri yazdırılabilir. Bu komutun özel anahtar şifrelemesi için geleneksel SSLeay uyumlu formatı kullandığını unutmayın: yeni uygulamalar pkcs8 yardımcı programını kullanarak daha güvenli olan PKCS#8 formatını kullanmalıdır.
KOMUT SEÇENEKLERI -help
Bir kullanım mesajı yazdırın. -inform DER|NET|PEM Bu, giriş biçimini belirtir. DER seçeneği, PKCS#1 RSAPrivateKey veya SubjectPublicKeyInfo biçimiyle uyumlu bir ASN1 DER kodlanmış biçim kullanır. PEM biçimi varsayılan biçimdir: ek üstbilgi ve altbilgi satırlarıyla base64 kodlanmış DER biçiminden oluşur. Girişte PKCS#8 biçimli özel anahtarlar da kabul edilir. NET biçimi NOTLAR bölümünde açıklanan bir biçimdir. -outform DER|NET|PEM Bu çıktı biçimini belirtir, seçenekler -inform seçeneği ile aynı anlama sahiptir. -in dosya adı Bu, bir anahtarın okunacağı girdi dosya adını veya bu seçenek belirtilmemişse standart girdiyi belirtir. Anahtar şifrelenmişse, bir geçiş cümlesi istenecektir. -passin arg giriş dosyası şifre kaynağı. arg biçimi hakkında daha fazla bilgi için openssl'deki PASS PHRASE ARGUMENTS bölümüne bakın. -out dosya adı Bu, bir anahtarın yazılacağı çıktı dosya adını veya bu seçenek belirtilmemişse standart çıktıyı belirtir. Herhangi bir şifreleme seçeneği ayarlanmışsa, bir geçiş cümlesi istenecektir. Çıktı dosya adı girdi dosya adıyla aynı olmamalıdır. -passout parola çıktı dosyası şifre kaynağı. arg biçimi hakkında daha fazla bilgi için openssl'deki PASS PHRASE ARGUMENTS bölümüne bakın. -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea Bu seçenekler özel anahtarı çıktı vermeden önce belirtilen şifre ile şifreler. Bir geçiş cümlesi istenir. Bu seçeneklerden hiçbiri belirtilmezse anahtar düz metin olarak yazılır. Bu, şifreleme seçeneği olmadan şifrelenmiş bir anahtarı okumak için rsa yardımcı programını kullanmanın, bir anahtardan geçiş ifadesini kaldırmak için kullanılabileceği veya şifreleme seçeneklerini ayarlayarak geçiş ifadesini eklemek veya değiştirmek için kullanılabileceği anlamına gelir. Bu seçenekler sadece PEM formatındaki çıktı dosyalarıyla kullanılabilir. -metin kodlanmış versiyona ek olarak çeşitli açık veya özel anahtar bileşenlerini düz metin olarak yazdırır. -noout bu seçenek anahtarın kodlanmış versiyonunun çıktısını engeller. -modulus bu seçenek anahtarın modülünün değerini yazdırır. -check bu seçenek bir RSA özel anahtarının tutarlılığını kontrol eder. -pubin varsayılan olarak girdi dosyasından bir özel anahtar okunur: bu seçenekle bunun yerine bir açık anahtar okunur. -pubout varsayılan olarak bir özel anahtar çıktısı verilir: bu seçenekle bunun yerine bir açık anahtar çıktısı verilecektir. Girdi bir açık anahtar ise bu seçenek otomatik olarak ayarlanır. -RSAPublicKey_in, -RSAPublicKey_out -pubin ve -pubout gibi, bunun yerine RSAPublicKey biçimi kullanılır. -motor kimliği bir motor belirtmek (benzersiz id dizesi ile) rsa'nın belirtilen motora işlevsel bir referans elde etmeye çalışmasına ve böylece gerekirse onu başlatmasına neden olur. Bu motor daha sonra mevcut tüm algoritmalar için varsayılan olarak ayarlanacaktır.
NOTLAR PEM özel anahtar formatı üstbilgi ve altbilgi satırlarını kullanır: -----BEGIN RSA ÖZEL ANAHTARI----- -----END RSA ÖZEL ANAHTARI----- PEM açık anahtar formatı üstbilgi ve altbilgi satırlarını kullanır: -----BEGIN AÇIK ANAHTAR----- -----END PUBLIC KEY----- PEM RSAPublicKey formatı üstbilgi ve altbilgi satırlarını kullanır: -----BEGIN RSA PUBLIC KEY----- -----END RSA AÇIK ANAHTARI----- NET formu eski Netscape sunucuları ve Microsoft IIS .key dosyaları ile uyumlu bir formattır, bu şifreleme için tuzsuz RC4 kullanır. Çok güvenli değildir ve bu nedenle yalnızca gerekli olduğunda kullanılmalıdır.
Bazı yeni IIS sürümlerinde dışa aktarılan .key dosyalarında ek veriler vardır. Bunları yardımcı programla kullanmak için, dosyayı bir ikili düzenleyici ile görüntüleyin ve "private-key" dizesini arayın, ardından 0x30, 0x82 bayt dizisine kadar izleyin (bu bir ASN1 SEQUENCE'dir). Bu noktadan itibaren tüm verileri başka bir dosyaya kopyalayın ve bunu -inform NET seçeneği ile rsa yardımcı programına girdi olarak kullanın. ÖRNEKLER Bir RSA özel anahtarındaki geçiş ifadesini kaldırmak için: openssl rsa -in key.pem -out keyout.pem Üçlü DES kullanarak bir özel anahtarı şifrelemek için: openssl rsa -in key.pem -des3 -out keyout.pem Bir özel anahtarı PEM'den DER biçimine dönüştürmek için: openssl rsa -in key.pem -outform DER -out keyout.der Bir özel anahtarın bileşenlerini standart çıktıya yazdırmak için: openssl rsa -in key.pem -text -noout Bir özel anahtarın sadece açık kısmının çıktısını almak için: openssl rsa -in key.pem -pubout -out pubkey.pem Özel anahtarın açık kısmını RSAPublicKey biçiminde çıktı olarak verir: openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
Bir pem dosyasından anahtar ve sertifikayı çıkarmak için:
openssl pkey -in foo.pem -out foo.key
Anahtarı çıkarmak için başka bir yöntem...
openssl rsa -in foo.pem -out foo.key
openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert
openssl x509 -in foo.pem -outform DER -out first-cert.der