GNU/Linux >> Belajar Linux >  >> Linux

Verifikasi tanda tangan gagal pada kunci publik SPKAC – Perbaiki kesalahan OpenCA

Setelah menginstal OpenCA dan menyiapkan Otoritas Sertifikat (CA), saya menemukan kesalahan – “Verifikasi tanda tangan gagal pada kunci publik SPKAC ” saat menandatangani permintaan sertifikat entitas akhir pada mesin CA.

Error while issuing Certificate to David (filename: /home/openca/var/openca/tmp/4229D72DA1BA34B416B9.req).

OpenCA::OpenSSL returns errocode 7731075 (OpenCA::OpenSSL->issueCert: OpenSSL fails (7777067). Using configuration from /home/openca/etc/openca/openssl/openssl/User.conf
Check that the SPKAC request matches the signature
Signature verification failed on SPKAC public key
140250398984096:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too 
large:a_object.c:108:
140250398984096:error:0D0C50A1:asn1 encoding routines:ASN1_item_verify:unknown message digest algorithm:a_verify.c:206:
error in ca
).

Saya menggunakan openca-base-1.5.0 dan openca-tools-1.3.0

Debug:

  • Saya mengaktifkan opsi debug di OpenCA dan menemukan perintah OpenSSL yang menandatangani sertifikat pengguna. Di bawah ini adalah cuplikan dari debug.
OpenCA::OpenSSL->_execute_command: ca -batch -config /home/openca/etc/openca/openssl/openssl/User.conf -keyfile /home/openca/var/openca/crypto/keys/cakey.pem -passin env:pwd -extfile /home/openca/var/openca/tmp/User.ext -preserveDN -subj "/O=OpenCA Labs/OU=Users/CN=David" -spkac /home/openca/var/openca/tmp/4229D72DA1BA34B416B9.req

Selengkapnya dari debug…

OpenCA::OpenSSL->setError: errno: 7731075
OpenCA::OpenSSL->setError: errval: OpenCA::OpenSSL->issueCert: OpenSSL fails (7777067). Using configuration from /home/openca/etc/openca/openssl/openssl/User.conf
Check that the SPKAC request matches the signature
signature verification failed on SPKAC public key
140030475425696:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large:a_object.c:108:
140030475425696:error:0D0C50A1:asn1 encoding routines:ASN1_item_verify:unknown message digest algorithm:a_verify.c:206:
error in ca

Kesalahan “verifikasi tanda tangan gagal pada kunci publik SPKAC ” dengan jelas mengatakan bahwa masalahnya adalah saat menandatangani kunci publik SPKAC – Permintaan dibuat di jendela browser pengguna seperti yang ditunjukkan di bawah ini:

Permintaan yang dihasilkan browser terdiri dari kunci publik dan tanda tangan SPKAC. SPKAC mungkin menggunakan MD5 dalam tanda tangannya. Itu tidak aman dan OpenSSL tidak memverifikasi tanda tangan yang menggunakan MD5 secara default.

Jadi bagaimana kita memberitahu OpenSSL untuk menerima permintaan yang menggunakan MD5? Begini caranya.

Cara memperbaiki Verifikasi tanda tangan gagal pada kunci publik SPKAC

Setel variabel lingkungan OPENSSL_ENABLE_MD5_VERIFY sebagai solusi untuk mengizinkan OpenSSL menandatangani permintaan yang menggunakan MD5. Karena OpenCA menggunakan sesi, Anda tidak bisa hanya mengatur variabel lingkungan pada baris perintah. Anda perlu mengaturnya secara terprogram, sehingga setiap kali OpenCA menggunakan perintah OpenSSL untuk menandatangani, itu harus disetel.

Jadi, atur variabel lingkungan OPENSSL_ENABLE_MD5_VERIFY di /home/openca/lib/openca/perl_modules/perl5/x86_64-linux-thread-multi/OpenCA/OpenSSL.pm berkas:

Cari Baris:# menjalankan perintah OpenSSL

Di bawah ini adalah kode tempat penandatanganan sertifikat.

$self->_debug ("issueCert: openssl=$command");
 $ENV{'pwd'} = "$passwd";
 $ret = $self->_execute_command (COMMAND => $command, KEY_USAGE => $engine);
 delete ($ENV{'pwd'});
 unlink ($reqfile) if ($reqdata);
 if( not $ret ) {
 $self->setError (7731075,
 $self->{gettext} ("OpenCA::OpenSSL->issueCert: OpenSSL fails (__ERRNO__). __ERRVAL__",
 "__ERRNO__", $self->errno,
 "__ERRVAL__", $self->errval));
 return undef;
 }

Sebelum mengeksekusi kode di atas, Anda perlu mengatur Variabel lingkungan seperti yang ditunjukkan di bawah ini:

$ENV{OPENSSL_ENABLE_MD5_VERIFY} = 0;

Sekarang restart daemon OpenCA dan tandatangani sertifikat pengguna Anda. Seharusnya berhasil.

Melalui Bugzilla


Linux
  1. Cara Memperbaiki Kesalahan "paket tidak valid atau rusak (tanda tangan PGP)" Di Arch Linux

  2. Bagaimana Memperbaiki Kesalahan 'Pengambilan kunci GPG gagal' selama Instalasi YUM?

  3. Bagaimana Memperbaiki Kesalahan OpenStack – Gagal menghapus jaringan? [Terselesaikan]

  1. Perbaiki Kesalahan:pemeriksaan libpci gagal. Nonaktifkan kemampuan Penetapan Perangkat KVM [Terpecahkan]

  2. Pengambilan Kunci Publik tidak diizinkan – Kesalahan MySQL WSO2

  3. Menginstal R dari repositori CRAN Ubuntu:Tidak Ada Kesalahan Kunci Publik

  1. Cara Memperbaiki "gpg:keyserver accept failed:No dirmngr" Error

  2. kvm:verifikasi modul gagal:tanda tangan dan/atau kunci yang diperlukan tidak ada - merusak kernel

  3. Cara menyalin kunci publik ke server Anda