GNU/Linux >> Belajar Linux >  >> Linux

Kesalahan OpenCA Tidak dapat memuat sertifikat dari database

Setelah OpenCA diinstal dan Sertifikat CA diterbitkan, mengklik nomor seri Sertifikat CA akan menampilkan kesalahan di bawah ini.

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

Meskipun mengaktifkan opsi debug, saya tidak dapat menemukan pesan kesalahan yang relevan di stderror.log .

  • Antarmuka mencantumkan sertifikat CA, tetapi gagal menampilkan informasi sertifikat saat menjalankan viewCert or viewCertFull operasi cmd.
  • Saya memverifikasi CA_Certificate yang disimpan di database PostgreSQL dan tampaknya baik-baik saja dan VALID.
  • String kueri dalam URI tampaknya baik-baik saja dengan dataType disebutkan dengan benar seperti di bawah ini:
cmd=viewCert&dataType=VALID_CA_CERTIFICATE&key=4045762475835932870787014.
  • Biasanya perintah dijalankan dari lib/cmds dikonfigurasi di etc/openca/access_control/*.xml file dan semuanya tampaknya telah dikonfigurasi dengan benar.

Jadi mengapa kesalahan ini terjadi? Untungnya menemukan solusi dan ini dia.

Cara memperbaiki kesalahan – Kesalahan OpenCA Tidak dapat memuat sertifikat dari database

  • listCerts file berisi sub-rutin cmdListCerts yang mengambil $query dan menguraikannya.
  • $dataType adalah salah satu hal yang diekstraksi.
  • @certsList diisi oleh kueri basis data, yang tampaknya berfungsi untuk mendaftar CA_CERTIFICATE .
  • $type diisi oleh $dataType diuraikan dari tautan yang memanggil skrip. Jadi, ini akan muncul sebagai argumen kueri "dataType" di tautan di belakang serial dan dengan mengeklik tautan itu, tautan itu akan dikirim ke viewCert . Sekali lagi, $dataType diurai dari $query seperti halnya untuk listCerts , tetapi entah bagaimana ini tidak berfungsi dengan benar di penyiapan OpenCA saya.

Saya menduga cara viewCert membedakan antara CERTIFICATE dan
CA_CERTIFICATE serta cara menangani berbagai kueri untuk sertifikat yang valid, kedaluwarsa,
ditangguhkan, dan dicabut.

Jadi di sini adalah modifikasi pada viewCert cmd dalam file lib/openca/perl_modules/perl5/OpenCA/AC.pm

Navigasikan ke sub-rutin getOwner di mana Anda akan menemukan yang berikut:

sub getOwner {

Cari baris:# load the certificate

Ganti baris di bawah ini

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

Dengan:

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

Masalahnya ada pada baris: if( not (@certs = $self->{db}->searchItems (.

Itu dia! Semoga ini bisa membantu seseorang di luar sana.


Linux
  1. OpenStack Error – Ukuran kolom indeks terlalu besar. Ukuran kolom maksimum adalah 767 byte [Terpecahkan]

  2. Kesalahan OpenCA addMessage gagal untuk XML slot log. Tidak dapat membuat direktori [Terpecahkan]

  3. Kesalahan peramban sertifikat SSL

  1. Memeriksa file DB Berkeley dari CLI

  2. Menggunakan openssl untuk mendapatkan sertifikat dari server

  3. Basis data MySql dari stik usb

  1. Cara Masuk ke Database Postgresql dari Command-line

  2. Linux:Bagaimana cara mendapatkan waktu buka halaman jarak jauh dengan perintah dari terminal?

  3. di mana database updatedb berada?