Now I know the reason come from the CA_Certificate,Because the CA_Certificate's serial is "-1",
So we can comment this section in file "/usr/local/openca/GridCA/lib/functions/crypto-utils.lib "
**************************************************************************
## get all valid_ca_certificates
@list = $db->searchItems ( DATATYPE => "VALID_CA_CERTIFICATE" );
foreach my $value (@list) {
my %hash;
$hash {STATUS} = "V";
$hash {DATE_1} = $cryptoShell->getOpenSSLDate ($value->getParsed ()->{NOTBEFORE});
$hash {DATE_2} = "";
$hash {SERIAL} = sprintf ("%lX", $value->getSerial());
$hash {SERIAL} = "0".$hash {SERIAL} if (length ($hash {SERIAL}) % 2);
$hash {DN} = $value->getParsed ()->{DN};
$hash {OPENSSL_SUBJECT} = $value->getParsed ()->{OPENSSL_SUBJECT};
print addPreLogLine (i18nGettext ("VALID_CA_CERTIFICATE: __CERT_SERIAL__", "__CERT_SERIAL__", $hash{SERIAL}));
$index [$value->getSerial()] = \%hash;
$max = $value->getSerial() if ($value->getSerial() > $max);
}
@list = $db->searchItems ( DATATYPE => "VALID_CA_CERTIFICATE" );
foreach my $value (@list) {
my %hash;
$hash {STATUS} = "V";
$hash {DATE_1} = $cryptoShell->getOpenSSLDate ($value->getParsed ()->{NOTBEFORE});
$hash {DATE_2} = "";
$hash {SERIAL} = sprintf ("%lX", $value->getSerial());
$hash {SERIAL} = "0".$hash {SERIAL} if (length ($hash {SERIAL}) % 2);
$hash {DN} = $value->getParsed ()->{DN};
$hash {OPENSSL_SUBJECT} = $value->getParsed ()->{OPENSSL_SUBJECT};
print addPreLogLine (i18nGettext ("VALID_CA_CERTIFICATE: __CERT_SERIAL__", "__CERT_SERIAL__", $hash{SERIAL}));
$index [$value->getSerial()] = \%hash;
$max = $value->getSerial() if ($value->getSerial() > $max);
}
**************************************************************************
2006/2/20, 郑依华 <[EMAIL PROTECTED]>:
Try to recover OpenSSL's index database
(Please wait until operation completes)
Create backups of index.txt and serial .../usr/local/openca/GridCA/var/crypto/index.txt/usr/local/openca/GridCA/var/crypto/serialLoading the Objects ...VALID_CA_CERTIFICATE: 7FFFFFFF
Error 700
General Error The compilation of the command cmdRebuildOpenSSLindexDB failed. Out of memory during array extend at /usr/local/openca/GridCA/lib/functions/crypto-utils.lib line 375.
--
Yihua Zheng
