Saya telah menyiapkan SSL untuk domain saya hari ini, dan telah menemukan masalah lain - saya berharap seseorang dapat menjelaskan ..
Saya terus menerima pesan kesalahan berikut:
[error] Init: Tidak dapat membaca sertifikat server dari file /etc/apache2/domain.com.ssl/domain.com.crt/domain.com.crt [kesalahan] Kesalahan Perpustakaan SSL: 218529960 kesalahan: 0D0680A8: rutin pengkodean asn1: ASN1_CHECK_TLEN: tag salah [kesalahan] Kesalahan Perpustakaan SSL: 218595386 kesalahan: 0D07803A: rutin pengkodean asn1: ASN1_ITEM_EX_D2I: kesalahan asn1 bersarang
Saya menjalankan Apache 2.2.16 dan Ubuntu 10.10. File .crt saya memiliki tag Begin dan End, dan telah disalin tepat dari email konfirmasi yang saya terima, sangat membuat frustrasi!
Tepuk tangan!
Sunting >> Ketika mencoba memverifikasi .crt Tampaknya tidak berfungsi:
>> openssl x509 -tidak ada -teks -di domain.com.crt tidak dapat memuat sertifikat 16851: kesalahan: 0906D06C: rutinitas PEM: PEM_read_bio: tidak ada baris awal: pem_lib.c: 650: Mengharapkan: SERTIFIKAT TERPERCAYA
Juga >>
>> openssl x509 -teks -informasi PEM -in domain.com.crt tidak dapat memuat sertifikat 21321: kesalahan: 0906D06C: rutinitas PEM: PEM_read_bio: tidak ada baris awal: pem_lib.c: 650: Mengharapkan: SERTIFIKAT TERPERCAYA
>> openssl x509 -teks -informasikan DER -in domain.com.crt tidak dapat memuat sertifikat 21325: kesalahan: 0D0680A8: rutinitas penyandian asn1: ASN1_CHECK_TLEN: tag salah: tasn_dec.c: 1316: 21325: kesalahan: 0D07803A: rutin pengkodean asn1: ASN1_ITEM_EX_D2I: nested asn1 error: tasn_dec.c: 380: Type = X509
Sunting >> (Bersulang untuk bantuannya)
>> grep '^ -----' domain.com.crt ----- MEMULAI SERTIFIKAT ----- ----- AKHIR SERTIFIKAT -----
Baru saja mengirim email ke perusahaan yang menyediakan Sertifikat, mereka menjawab>
Saya telah memeriksa file CSR yang Anda berikan dan saya dapat memastikan bahwa ini dibuat dengan benar. Kesalahan yang Anda temui saat ini disebabkan karena Anda menggunakan baris perintah yang salah untuk menginstal CSR. Anda perlu memodifikasi domain.com.crt ini dari baris perintah Anda dengan nama domain Anda yang sesuai.
- saat ini crt diatur ke mysite.com.crt - Saya telah menggunakan domain.com.crt sebagai contoh
sumber
grep '^-----' domain.com.crt
?Jawaban:
Apakah mungkin bahwa garis-garis tersebut diakhiri dengan M? Ini adalah masalah potensial ketika memindahkan file dari Windows ke sistem UNIX. Salah satu cara mudah untuk memeriksa adalah dengan menggunakan
vi
dalam mode "tunjukkan biner", denganvi -b /etc/apache2/domain.ssl/domain.ssl.crt/domain.com.crt
.Jika setiap baris diakhiri dengan kontrol-M, seperti ini
Anda punya file dalam format Windows-terminated, dan apache tidak suka itu.
Pilihan Anda termasuk memindahkan file lagi, lebih berhati-hati; atau menggunakan
dos2unix
perintah untuk menghapusnya; Anda juga dapat menghapusnya di dalam vi, jika Anda berhati-hati.Sunting : terima kasih kepada @ dave_thompson_085, yang menunjukkan bahwa jawaban ini tidak lagi berlaku pada 2019. Artinya, Apache / OpenSSL sekarang toleran terhadap baris yang diakhiri dengan ^ M, sehingga tidak menimbulkan masalah. Yang mengatakan, kesalahan pemformatan lainnya, beberapa contoh berbeda yang muncul di komentar, masih dapat menyebabkan masalah; periksa dengan seksama untuk ini jika sertifikat telah dipindahkan melintasi sistem.
sumber
-----BE
... Terima kasih atas inspirasi untuk memeriksa ulang!Bagi siapa pun yang tiba di halaman ini dengan kesalahan yang sama ketika mencoba membaca Permintaan Penandatanganan Sertifikat (CSR) (perhatikan bahwa OP sedang membaca sertifikat): pastikan untuk menggunakan perintah OpenSSL yang tepat.
x509
untuk sertifikat danreq
untuk CSR:vs.
sumber
Hanya berputar-putar dalam lingkaran ini, dan ternyata saya memiliki sertifikat di jalan yang salah - misalnya
dari pada:
Sesuatu untuk diperiksa jika Anda mendapatkan kesalahan ini.
sumber
Saya menduga Anda memiliki masalah dengan format sertifikat.
Jalankan kedua dari dua perintah berikut dan beri kami output:
sumber
Dalam kasus saya, saya menemukan sertifikat saya memiliki karakter "-" yang berbeda. Pasti ada masalah salin / tempel dari admin yang menempatkan sertifikat ke server, dengan mengganti editor teks - dengan karakter unicode khusus di sepanjang jalan.
Ini membutuhkan waktu berjam-jam untuk mendiagnosis, dan pada akhirnya saya hanya menebaknya, dan mengedit sertifikat di vi dan menghapus karakter "-" yang ada, dan mengetik ulang.
Semoga ini bisa membantu seseorang.
sumber
Dalam kasus saya, saya menemukan kesalahan OP karena siapa pun yang membuat file .crt untuk saya sejak awal benar-benar membuat file berformat .PEM , dan menamakannya .crt.
Saya menemukan ini dengan menjalankan ke dalam panduan bermanfaat berikut ini: https://support.ssl.com/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cs-vs-cer-vs-pem-certificates-and-how -untuk-mengkonversi-mereka
yang harus saya lakukan adalah mengubah nama .crt menjadi .pem, dan saya selesai! Panduan ini menunjukkan bahwa kesalahan dari pertanyaan OP menyiratkan bahwa file input sudah diformat PEM, jadi upaya untuk mengubahnya menjadi .pem dari format DER tidak dapat dilakukan, dan pada kenyataannya tidak perlu.
sumber
Pastikan file Anda tidak memiliki spasi tambahan atau spasi terdepan dalam file sertifikat. Dengan hati-hati memastikan tidak ada spasi atau kosong dalam file sertifikat Anda, dengan memilih seluruh teks dan mencari ruang kosong pada editor hanya teks.
Juga periksa apakah memang semua file yang dikonfigurasi ada dan benar.
Misalnya: pada posting Anda yang lain, Anda mengatakan bahwa file .key Anda bernama my domain.com.crt sementara pada konfigurasi vhost Anda memiliki domain.com.crt
Periksa lagi apakah semua file di atas benar-benar ada dan valid.
sumber
--
menjadi–
; itu tidak menyenangkan untuk dipecahkan.sudo openssl x509 -noout -text -in domain.com.crt unable to load certificate 16851:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: TRUSTED CERTIFICATE
-----BEGIN CERTIFICATE-----
dan baris terakhir berakhir dengan-----END CERTIFICATE-----
?Jika orang lain mengalami masalah ini dan log kesalahan apache Anda mengatakan sesuatu seperti:
Init: Tidak dapat membaca sertifikat server dari file /etc/apache2/domain.com.ssl/domain.com.crt/domain.com.crt
Pastikan Anda belum menukar file kunci dan sertifikat Anda dalam deklarasi di konfigurasi apache. Saya telah menunjuk kunci ke file sertifikat saya dan sertifikat ke file kunci saya. Posting ini membantu saya memecahkan masalah, tetapi saya ingin menunjukkannya sebagai potensi masalah / solusi lain.
sumber
Masalah saya (mengalami kesalahan yang sama saat menginstal server baru dengan Apache 2.4) adalah bahwa Apache (2.4) tidak dapat membaca file .crt biner. Saya mengimpornya di toko sertifikat pribadi saya (dengan mmc) dan mengekspornya sebagai basis-64 yang dikodekan X.509 (.cer). Mengganti nama file yang diekspor ke nama yang sama (.crt) (digunakan di httpd-ssl.conf saya) dan berhasil lagi! Sertifikat yang sama bekerja di server lama saya, mungkin Apache 2.4 lebih ketat dari 2.2? Semoga berhasil.
sumber
Dalam kasus saya, ini ada hubungannya dengan BOM yang ada dalam file. Orang bisa menghapusnya seperti ini:
Tidak yakin apakah selalu membutuhkan 3 byte, jadi cara yang lebih baik adalah:
sumber
Saya mendapat kesalahan yang sama karena saya beralih .key dengan nama file .crt
sumber
Saya memiliki masalah yang sama ketika saya tidak sengaja menggunakan sertifikat IIS tipe p7b yang disediakan pelanggan di konfigurasi apache. Mengubah format cert ke x509 memperbaiki kesalahan. Kedua jenis terlihat sama di permukaan tetapi tampaknya berbeda di bagian dalam.
sumber
Saya mengalami masalah ini karena saya dikirim konten file .p7b gaya IIS disisipkan ke email. Ini memiliki tag "----- BEGIN CERTIFICATE -----" dan "----- END CERTIFICATE -----", sama seperti .pem, dan kontennya menggunakan pengkodean base64 yang mirip. Saya mengonversinya menjadi file * .pem seperti ini:
Setelah itu, Apache 2.2 senang.
sumber
Saya baru-baru ini memiliki masalah ini menggunakan Lets Encrypt (letsencrypt) di Windows. Sertifikat itu kembali dikodekan sebagai UTF-16LE. Mengubahnya ke UTF-8 (menggunakan dos2unix) memecahkan masalah.
sumber
Dalam kasus saya hanya garis kosong. Ketika saya menempelkan file crt dari ntepad atau notepad ++ di nano selalu seperti
menghapus ruang kosong dan putig semua dalam satu baris menyelesaikan masalah Mis:
sumber