GNU/Linux >> Tutoriels Linux >  >> Linux

Erreur OpenCA Impossible de charger le certificat à partir de la base de données

Une fois l'OpenCA installé et le certificat CA émis, cliquer sur le numéro de série du certificat CA génère l'erreur ci-dessous.

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

Malgré l'activation de l'option de débogage, je n'ai trouvé aucun message d'erreur pertinent dans stderror.log .

  • L'interface répertorie le certificat CA, mais ne parvient pas à afficher les informations de certificat lors de l'exécution de viewCert or viewCertFull opérations cmd.
  • J'ai vérifié le CA_Certificate stocké dans la base de données PostgreSQL et il semble correct et VALIDE.
  • La chaîne de requête dans l'URI semble convenir au dataType correctement mentionné comme ci-dessous :
cmd=viewCert&dataType=VALID_CA_CERTIFICATE&key=4045762475835932870787014.
  • Généralement, les commandes exécutées depuis lib/cmds est configuré dans etc/openca/access_control/*.xml fichiers et tout semble être correctement configuré.

Alors pourquoi cette erreur se produit-elle ? Heureusement trouvé une solution et la voici.

Comment corriger l'erreur - Erreur OpenCA Impossible de charger le certificat à partir de la base de données

  • Les listCerts le fichier contient la sous-routine cmdListCerts qui prend la $query et l'analyse.
  • $dataType est l'une des choses qu'il extrait.
  • @certsList est rempli par la requête de base de données, qui semble fonctionner pour lister le CA_CERTIFICATE .
  • $type est rempli par $dataType analysé à partir du lien appelant le script. Donc, cela devrait apparaître comme argument de requête "dataType" dans le lien derrière le serial et en cliquant sur ce lien, il doit être envoyé au viewCert . Là encore, $dataType est analysé à partir de $query comme c'était le cas pour listCerts , mais cela ne fonctionne pas correctement dans ma configuration OpenCA.

Je soupçonnais la façon dont viewCert fait la distinction entre CERTIFICATE et
CA_CERTIFICATE et la manière dont les différentes requêtes pour les certificats valides, expirés,
suspendus et révoqués sont traitées.

Voici donc une modification du viewCert cmd dans le fichier lib/openca/perl_modules/perl5/OpenCA/AC.pm

Accédez à la sous-routine getOwner où vous trouverez les éléments suivants :

sub getOwner {

Localisez la ligne :# load the certificate

Remplacez les lignes ci-dessous

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");
}

Avec :

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");
}

Le problème concernait la ligne : if( not (@certs = $self->{db}->searchItems (.

C'est ça! J'espère que cela aidera quelqu'un là-bas.


Linux
  1. Linux :Comment obtenir le temps de chargement d'une page distante avec une commande depuis le terminal ?

  2. Erreur OpenStack - Taille de colonne d'index trop grande. La taille de colonne maximale est de 767 octets [Résolu]

  3. OpenCA Error addMessage a échoué pour l'emplacement de journal XML. Impossible de créer le répertoire [Résolu]

  4. Erreur de navigateur de certificat SSL

  5. Examen des fichiers Berkeley DB à partir de la CLI

Dépannage de l'erreur "Certificat TLS inacceptable" sous Linux

Vous ne trouvez pas -lm ?

Comment dépanner l'erreur :Cpanel::Exception::Database::Error/(XID 9a8sak) ?

Effacer les commentaires WordPress non approuvés de la base de données

Utilisation d'openssl pour obtenir le certificat d'un serveur

Les binaires linux-x64 ne peuvent pas être utilisés sur l'erreur de plate-forme linuxmusl-x64