GNU/Linux >> Znalost Linux >  >> Linux

Ověření podpisu na veřejném klíči SPKAC se nezdařilo – Oprava chyby OpenCA

Po instalaci OpenCA a nastavení certifikační autority (CA) jsem narazil na chybu – „Ověření podpisu na veřejném klíči SPKAC se nezdařilo ” při podepisování žádosti o certifikát koncové entity na počítači 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
).

Používám openca-base-1.5.0 a openca-tools-1.3.0

Ladění:

  • Povolil jsem možnost ladění v OpenCA a našel jsem příkaz OpenSSL, který podepisuje uživatelský certifikát. Níže je snímek z ladění.
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

Více z ladění…

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

Chyba „Ověření podpisu na veřejném klíči SPKAC se nezdařilo “ jasně říká, že problém je při podepisování veřejného klíče SPKAC – Požadavek byl vygenerován v okně prohlížeče uživatele, jak je uvedeno níže:

Požadavek vygenerovaný prohlížečem se skládá z veřejného klíče SPKAC a podpisu. SPKAC pravděpodobně používá MD5 ve svém podpisu. To je nejisté a OpenSSL neověřuje podpisy, které používají MD5 ve výchozím nastavení.

Jak tedy řekneme OpenSSL, aby přijímalo požadavky, které používají MD5? Tady je návod.

Jak opravit Ověření podpisu se nezdařilo na veřejném klíči SPKAC

Nastavte proměnnou prostředí OPENSSL_ENABLE_MD5_VERIFY jako řešení umožňující OpenSSL podepisovat požadavky, které používají MD5. Protože OpenCA používá relace, nemůžete pouze nastavit proměnnou prostředí na příkazovém řádku. Musíte to nastavit programově, takže kdykoli OpenCA použije k podpisu příkaz OpenSSL, měl by být nastaven.

Takže nastavte proměnnou prostředí OPENSSL_ENABLE_MD5_VERIFY /home/openca/lib/openca/perl_modules/perl5/x86_64-linux-thread-multi/OpenCA/OpenSSL.pm soubor:

Vyhledejte řádek:# spuštěním příkazu OpenSSL

Níže je kód, kde probíhá podepisování certifikátu.

$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;
 }

Před provedením výše uvedeného kódu musíte nastavit proměnnou prostředí, jak je uvedeno níže:

$ENV{OPENSSL_ENABLE_MD5_VERIFY} = 0;

Nyní restartujte démona OpenCA a podepište svůj uživatelský certifikát. Mělo by to fungovat.

Přes Bugzilla


Linux
  1. Jak opravit chybu „Načítání klíče GPG se nezdařilo“ během instalace YUM?

  2. Jak opravit chybu OpenStack – nepodařilo se odstranit síť? [vyřešeno]

  3. Opravit chybu:Kontrola libpci se nezdařila. Zakázat funkci KVM Device Assignment [Vyřešeno]

  1. kvm:ověření modulu se nezdařilo:chybí podpis a/nebo požadovaný klíč - narušuje jádro

  2. Git Clone se nezdařilo:Ověření certifikátu serveru se nezdařilo

  3. Jak zkopírovat veřejný klíč na váš server

  1. Jak opravit chybu „gpg:příjem keyserveru selhal:Žádný dirmngr“ Chyba

  2. Jak opravit chybu „neplatný nebo poškozený balíček (podpis PGP)“ v Arch Linuxu

  3. Chyba OpenCA addMessage se nezdařilo pro slot protokolu XML. Nelze vytvořit adresář [Vyřešeno]