GNU/Linux >> LINUX-Kenntnisse >  >> Linux

OpenCA-Fehler Zertifikat kann nicht aus der Datenbank geladen werden

Sobald OpenCA installiert und das CA-Zertifikat ausgestellt ist, wird beim Klicken auf die Seriennummer des CA-Zertifikats der folgende Fehler ausgegeben.

Error Code: 6295020 [initServer:314] Cannot load certificate 404576247583593287078701 from the database.

Trotz aktivierter Debug-Option konnte ich keine relevanten Fehlermeldungen in stderror.log finden .

  • Die Schnittstelle listet das CA-Zertifikat auf, zeigt die Zertifikatsinformationen jedoch nicht an, während viewCert or viewCertFull ausgeführt wird cmd-Operationen.
  • Ich habe das in der PostgreSQL-Datenbank gespeicherte CA_Certificate überprüft und es scheint in Ordnung und GÜLTIG zu sein.
  • Die Abfragezeichenfolge in URI scheint mit dem dataType in Ordnung zu sein richtig wie folgt erwähnt:
cmd=viewCert&dataType=VALID_CA_CERTIFICATE&key=4045762475835932870787014.
  • Normalerweise die Befehle, die von lib/cmds ausgeführt werden wird in etc/openca/access_control/*.xml konfiguriert Dateien und alles scheint richtig konfiguriert zu sein.

Warum tritt dieser Fehler auf? Glücklicherweise eine Lösung gefunden und hier ist sie.

So beheben Sie den Fehler – OpenCA-Fehler Zertifikat kann nicht aus der Datenbank geladen werden

  • Die listCerts Datei enthält die Unterroutine cmdListCerts was die $query nimmt und parst es.
  • $dataType ist eines der Dinge, die es extrahiert.
  • @certsList wird von der Datenbankabfrage gefüllt, die zum Auflisten des CA_CERTIFICATE zu funktionieren scheint .
  • $type wird durch $dataType ausgefüllt aus dem Link analysiert, der das Skript aufruft. Dies sollte also als Abfrageargument "dataType" erscheinen im Link hinter der serial und durch Klicken auf diesen Link sollte es an viewCert gesendet werden . Dort wieder $dataType wird von $query geparst genauso wie es für listCerts war , aber irgendwie funktioniert das in meinem OpenCA-Setup nicht richtig.

Ich vermutete den Weg viewCert unterscheidet zwischen CERTIFICATE und
CA_CERTIFICATE und wie verschiedene Abfragen für gültige, abgelaufene,
suspendierte und widerrufene Zertifikate behandelt werden.

Hier ist also eine Modifikation des viewCert cmd in der Datei lib/openca/perl_modules/perl5/OpenCA/AC.pm

Navigieren Sie zur Unterroutine getOwner wo Sie Folgendes finden:

sub getOwner {

Suchen Sie die Zeile:# load the certificate

Ersetzen Sie die folgenden Zeilen

my @certs;
my $certype = "CERTIFICATE";
if( not (@certs = $self->{db}->searchItems (
KEY => $self->{acl}->{object},
DATATYPE => "CERTIFICATE"))) {
# if (length ($self->{acl}->{object}) < 60 ) { # @certs = $self->{db}->searchItems (KEY => $self->{acl}->{object}, DATATYPE => "CERTIFICATE");
#}
$certtype = "CA_CERTIFICATE";
@certs = $self->{db}->searchItems (
KEY => $self->{acl}->{object},
DATATYPE => "CERTIFICATE");
}

Mit:

my @certs;
my $certtype = "CERTIFICATE";
if( $self->{db}->searchItems (
KEY => $self->{acl}->{object},
DATATYPE => "CERTIFICATE")) {

$certtype = "CA_CERTIFICATE";
@certs = $self->{db}->searchItems (
KEY => $self->{acl}->{object},
DATATYPE => "CERTIFICATE");
} else {
$certtype = "CA_CERTIFICATE";
@certs = $self->{db}->searchItems (
KEY => $self->{acl}->{object},
DATATYPE => "CA_CERTIFICATE");
}

Das Problem war mit der Zeile: if( not (@certs = $self->{db}->searchItems (.

Das ist es! Hoffe, es hilft jemandem da draußen.


Linux
  1. Linux:Wie erhalte ich die Ladezeit der Remote-Seite mit einem Befehl vom Terminal?

  2. OpenCA-Fehler Zertifikat kann nicht aus der Datenbank geladen werden

  3. wie man sich bei mysql anmeldet und die datenbank vom linux-terminal aus abfragt

  4. Verwenden von openssl, um das Zertifikat von einem Server abzurufen

  5. pkg-config-Fehler kann nicht gefunden werden

Fehlerbehebung „Inakzeptables TLS-Zertifikat“-Fehler in Linux

Wie kann man den Fehler beheben:Cpanel::Exception::Database::Error/(XID 9a8sak)?

Löschen Sie nicht genehmigte WordPress-Kommentare aus der Datenbank

Fehler im Browser des SSL-Zertifikats

Untersuchen von Berkeley-DB-Dateien über die CLI

linux-x64-Binärdateien können nicht auf der linuxmusl-x64-Plattform verwendet werden Fehler