#!/usr/local/bin/perl # view.cgi # Views certificates and keys in detail require './certmgr-lib.pl'; $access{'view'} || &error($text{'ecannot'}); &ReadParse(); if (!$in{'wildcard'}){$in{'wildcard'}=$config{'default_wildcard'}} $wildcard_pattern=$in{'wildcard'}; $wildcard_pattern=~s/\./\\./g; $wildcard_pattern=~s/\*/[^\/]*?/g; $wildcard_pattern=~s/\?/./g; if ($in{'dl'} ne "yes" && $in{'pkcs12'} ne "yes") { &header($text{'view_title'}, ""); print &ui_hr(); } if ($in{'delete'} eq "yes"){ if ($in{'keyfile'}) { $file=$in{'keyfile'} } elsif ($in{'certfile'}) { $file=$in{'certfile'} } elsif ($in{'csrfile'}) { $file=$in{'csrfile'} } elsif ($in{'keycertfile'}) { $file=$in{'keycertfile'} } if (!($file)&&((-f $file)||(-s $file))){ print "$file: $text{'view_e_nofile'}\n
\n"; } if (unlink($file)) { print "$file: $text{'view_deleted'}\n
\n"; } else { print "$file: $text{'view_e_not_deleted'}\n
\n"; } &footer("", $text{'index_return'}); exit; } if (($in{'filename'}) && ($in{'view'} eq $text{'view_view'})) { $in{'filename'}=$config{'ssl_dir'}."/".$in{'filename'}; if (!open(FILE,$in{'filename'})) { print "$text{'e_file'}\n
\n";
&footer("", $text{'index_return'});
exit;
}
while( \n";
&footer("", $text{'index_return'});
exit;
}
undef($buffer);
undef($key);
undef($cert);
}
if ($in{'keyfile'}) {
if ($in{'dl'} eq 'yes') {
# Just output in PEM format
&output_cert($in{'keyfile'});
} elsif ($in{'pkcs12'} eq 'yes') {
# Just output in PKCS8 format
&output_pkcs12($in{'keyfile'});
}
open(OPENSSL,"$config{'openssl_cmd'} rsa -in $in{'keyfile'} -text -noout|");
while(
\n$text{'e_notcert'}\n
\n";
&download_form("keyfile", $in{'keyfile'}, $text{'key'});
print &ui_hr();
&footer("", $text{'index_return'});
exit;
}
if ($in{'certfile'}||$in{'csrfile'}) {
if ($in{'csrfile'}){
$in{'certfile'}=$in{'csrfile'};
$text{'certificate'}=$text{'csr'};
}
if ($in{'dl'} eq 'yes') {
# Just output in PEM format
&output_cert($in{'certfile'});
} elsif ($in{'pkcs12'} eq 'yes') {
# Just output in PKCS8 format
&output_pkcs12($in{'certfile'});
}
if ($in{'csrfile'}) {
open(OPENSSL,"$config{'openssl_cmd'} req -in $in{'certfile'} -text -noout|");
} else {
open(OPENSSL,"$config{'openssl_cmd'} x509 -in $in{'certfile'} -text -fingerprint -noout|");
}
while( \n$in{'keyfile'} \n";
if (!$buffer) { print $text{'e_file'};}
else {&print_key_info(1,$buffer);}
print "
\n";
&download_form("certfile", $in{'certfile'}, $text{'certificate'});
print &ui_hr();
&footer("", $text{'index_return'});
exit;
}
if ($in{'keycertfile'}) {
if ($in{'dl'} eq 'yes') {
# Just output in PEM format
&output_cert($in{'keycertfile'});
} elsif ($in{'pkcs12'} eq 'yes') {
# Just output in PKCS8 format
&output_pkcs12($in{'keycertfile'});
}
open(OPENSSL,"$config{'openssl_cmd'} x509 -in $in{'keycertfile'} -text -fingerprint -noout|");
while( \n$in{'certfile'} \n";
if (!$buffer) { print $text{'e_file'};}
else {&print_cert_info(1,$buffer);}
print "
\n";
&download_form("keycertfile", $in{'keycertfile'},
"$text{'certificate'} / $text{'key'}");
print &ui_hr();
&footer("", $text{'index_return'});
exit;
}
print "\n";
print &ui_hr();
&footer("", $text{'index_return'});
sub output_cert
{
print "Content-type: text/plain\n\n";
open(OPENSSL, $_[0]);
while( \n";
print "$in{'keycertfile'} \n$text{'certificate'} $text{'key'} \n";
if (!$buffer) { print $text{'e_file'};}
else {&print_cert_info(1,$buffer);}
print " \n";
undef($buffer);
open(OPENSSL,"$config{'openssl_cmd'} rsa -in $in{'keycertfile'} -text -noout|");
while(
\n";
}
\n";
print "\n";
print " \n";
print "\n";
print " \n";
print "\n";
print "