Saya memerlukan nama hash untuk file yang akan dikirim di direktori CApath Stunnel. Saya punya beberapa sertifikat di direktori ini dan semuanya berfungsi dengan baik. Juga, saya memiliki sert server dan kunci server:
cert = c:\Program Files (x86)\stunnel\server_cert.pem
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Ketika saya mencoba menghitung hash dari sertifikat baru saya, saya mendapatkan kesalahan:
/etc/pki/tls/misc/c_hash cert.pem
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
Seperti yang saya pahami, saya harus menandatangani sertifikat saya, tetapi saya tidak mengerti bagaimana saya bisa melakukannya. Tolong berikan solusinya.
PS:
Pesan
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE:
diposting ketika saya membuat c_hash untuk cert.pem Ini bukan server_cert.pem, ini adalah Root_CA dan isinya seperti
-----BEGIN CERTIFICATE-----
...6UXBNSDVg5rSx60=..
-----END CERTIFICATE-----
Saat saya menulis
openssl x509 -noout -text -in cert.pem
Di panel konsol saya melihat info ini:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=BE, ST=BB, L=BB, O=BANKSYS NV, OU=SCY, CN=TEST Root CA
Validity
Not Before: May 31 08:06:40 2005 GMT
Not After : May 31 08:06:40 2020 GMT
Subject: C=BE, ST=BB, L=BB, O=BB NV, OU=SCY, CN=TEST Root CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:82:c8:58:1e:e5:7a:b2:63:a6:15:bd:f9:bb:1f:
............
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
76:70:AB:92:9B:B1:26:CE:9E:93:D8:77:4F:78:0D:B8:D4:6C:DA:C6
Signature Algorithm: sha1WithRSAEncryption
2c:7e:bd:3f:da:48:a4:df:8d:7c:96:58:f7:87:bd:e7:16:24:
...............
key
dancert
file dalamhttps
objek config yang diberikan kepadawebpack.config
'sdevServer
.Jawaban:
Karena Anda menggunakan Windows, pastikan bahwa sertifikat Anda di Windows "kompatibel", yang terpenting tidak ada
^M
di akhir setiap barisJika Anda membukanya akan terlihat seperti ini:
Untuk mengatasi "ini" buka dengan
Write
atau Notepad ++ dan ubah menjadi "gaya" WindowsCoba jalankan
openssl x509 -text -inform DER -in server_cert.pem
dan lihat apa hasilnya, sepertinya kunci privat / rahasia tidak akan dipercaya, kepercayaan hanya diperlukan jika Anda mengekspor kunci dari keystore, bukan?sumber
openssl x509 -hash -noout -in
ia melakukan ekstraksi hash, lihat apakah itu membantu?SSL_accept: 14094418: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
ketika saya mencoba untuk membuat koneksica
untuk sertifikat CA merekaopenssl x509 -text -inform DER -in server_cert.pem
mengonversip7b
sertifikat yang dikodekan (?) Saya menjadi sesuatu yang dapat digunakan.Kemungkinan penyebab lainnya adalah mencoba menggunakan modul x509 pada sesuatu yang bukan x509
Sertifikat server dalam format x509, tetapi kunci privatnya adalah rsa
Begitu,
sumber
Situasi saya sedikit berbeda. Solusinya adalah menghapus .pem dari semua yang ada di luar bagian CERTIFICATE dan PRIVATE KEY dan untuk membalik urutan kemunculannya. Setelah mengonversi dari file pfx ke pem, sertifikat terlihat seperti ini:
Setelah mengoreksi file, itu hanya:
sumber
cat $SOURCE/privkey.pem $SOURCE/fullchain.pem > server.pem
Kesalahan saya hanya menggunakan file CSR, bukan file CERT.
sumber
key is not found
Saya mengalami masalah yang sama saat menggunakan Windows, diperbaiki dengan membukanya di Notepad ++ dan mengubah pengkodean dari "UCS-2 LE BOM" menjadi "UTF-8".
sumber
Ubah encoding di notepad ++ UTF-8 dengan BOM . Begitulah cara kerjanya bagi saya
sumber
Anda bisa mendapatkan kesalahan yang menyesatkan ini jika Anda secara naif mencoba melakukan ini:
Mengenkripsi data menggunakan kunci pribadi tidak diizinkan oleh desain .
Anda dapat melihat dari opsi baris perintah untuk ssl terbuka bahwa satu-satunya opsi untuk
encrypt -> decrypt
pergi ke satu arahpublic -> private
.Arah lain sengaja dicegah karena kunci publik pada dasarnya "bisa ditebak". Jadi, mengenkripsi dengan kunci pribadi berarti satu-satunya hal yang Anda peroleh adalah memverifikasi bahwa pembuatnya memiliki akses ke kunci pribadi tersebut.
The
private key encrypt -> public key decrypt
arah disebut "penandatanganan" untuk membedakannya dari menjadi teknik yang dapat data sebenarnya aman.Catatan: deskripsi saya adalah penyederhanaan untuk kejelasan. Baca jawaban ini untuk informasi lebih lanjut .
sumber