version 1.5, 2017/05/18 22:13:57
|
version 1.8, 2018/12/22 17:06:06
|
Line 31
|
Line 31
|
package LONCAPA::SSL; |
package LONCAPA::SSL; |
use strict; |
use strict; |
use lib '/home/httpd/lib/perl/'; |
use lib '/home/httpd/lib/perl/'; |
use Apache::lonlocal(); |
use Apache::lonlocal; |
use Apache::lonnet(); |
use Apache::lonnet(); |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
Line 48 sub print_certstatus {
|
Line 48 sub print_certstatus {
|
'avai' => 'Available', |
'avai' => 'Available', |
'yes' => 'Yes', |
'yes' => 'Yes', |
'no' => 'No', |
'no' => 'No', |
'cn' => 'Common Name', |
'cn' => 'Common Name (CN)', |
'start' => 'Valid From', |
'start' => 'Valid From', |
'end' => 'Valid To', |
'end' => 'Valid To', |
'alg' => 'Signature Algorithm', |
'alg' => 'Signature Algorithm', |
Line 62 sub print_certstatus {
|
Line 62 sub print_certstatus {
|
'expired' => 'Expired', |
'expired' => 'Expired', |
'future' => 'Future validity', |
'future' => 'Future validity', |
'nokey' => 'No key', |
'nokey' => 'No key', |
'otherkey' => 'No matching key', |
'otherkey' => 'No matching key', |
|
'revoked' => 'Revoked by CA', |
|
'wrongcn' => 'Incorrect CN', |
|
'mismatch' => 'Mismatched Issuer', |
); |
); |
my @files = qw(key host hostname ca); |
my @files = qw(key host hostname ca); |
my @fields = qw(status cn start end alg size email); |
my @fields = qw(status cn start end alg size email); |
foreach my $server (sort(keys(%{$servers}))) { |
foreach my $server (sort(keys(%{$servers}))) { |
my ($result,$hashref) = &Apache::lonnet::get_servercerts_info($server,$context); |
my $hostname = $servers->{$server}; |
|
my ($result,$hashref) = &Apache::lonnet::get_servercerts_info($server, |
|
$hostname, |
|
$context); |
if ($result eq 'ok' && ref($hashref) eq 'HASH') { |
if ($result eq 'ok' && ref($hashref) eq 'HASH') { |
if ($target eq 'web') { |
if ($target eq 'web') { |
my $hostname = &Apache::lonnet::hostname($server); |
|
$message .= "<fieldset><legend>$hostname ($server)</legend>". |
$message .= "<fieldset><legend>$hostname ($server)</legend>". |
&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row()."\n"; |
&Apache::loncommon::start_data_table_header_row()."\n"; |
Line 81 sub print_certstatus {
|
Line 86 sub print_certstatus {
|
} else { |
} else { |
$message .= $server.':'; |
$message .= $server.':'; |
} |
} |
|
my %csr; |
foreach my $file (@files) { |
foreach my $file (@files) { |
if ($target eq 'web') { |
if ($target eq 'web') { |
$message .= &Apache::loncommon::start_data_table_row()."\n". |
$message .= &Apache::loncommon::start_data_table_row()."\n". |
Line 146 sub print_certstatus {
|
Line 152 sub print_certstatus {
|
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
$display = &Apache::lonhtmlcommon::confirm_success($display); |
$display = &Apache::lonhtmlcommon::confirm_success($display); |
} |
} |
} elsif (($display eq 'nokey') || ($display eq 'otherkey')) { |
} elsif (($display eq 'nokey') || ($display eq 'otherkey') || |
|
($display eq 'revoked') || ($display eq 'expired') || |
|
($display eq 'wrongcn') || ($display eq 'mismatch')) { |
if ($target eq 'web') { |
if ($target eq 'web') { |
$display = $lt{$display}; |
$display = $lt{$display}; |
|
} |
|
if (ref($hashref->{$file.'-csr'}) eq 'HASH') { |
|
if ($hashref->{$file.'-csr'}->{$item} eq 'ok') { |
|
if ($target eq 'web') { |
|
$display .= '<br />'.&mt('(New request awaiting signature)'); |
|
} |
|
$csr{$file} = 1; |
|
} |
} |
} |
} |
} |
} elsif ($item eq 'start') { |
} elsif ($item eq 'start') { |
Line 176 sub print_certstatus {
|
Line 192 sub print_certstatus {
|
} |
} |
} else { |
} else { |
if ($target eq 'web') { |
if ($target eq 'web') { |
$message .= '<td>'.$lt{'no'}.'<td>'; |
$message .= '<td>'.$lt{'no'}.'</td>'; |
} else { |
} else { |
$message .= 'no,'; |
$message .= 'no,'; |
} |
} |
|
if ((($file eq 'host') || ($file eq 'hostname')) && |
|
(ref($hashref->{$file.'-csr'}) eq 'HASH')) { |
|
if ($hashref->{$file.'-csr'}->{'status'} eq 'ok') { |
|
if ($target eq 'web') { |
|
my $colspan = scalar(@fields); |
|
$message .= '<td colspan="'.$colspan.'">'. |
|
&mt('Request for [_1] awaiting signature', |
|
$lt{$file}).'</td>'; |
|
} |
|
$csr{$file} = 1; |
|
} |
|
} |
foreach my $item (@fields) { |
foreach my $item (@fields) { |
if ($target eq 'web') { |
if ($target eq 'web') { |
$message .= '<td> </td>'; |
unless ($csr{$file}) { |
|
$message .= '<td> </td>'; |
|
} |
} else { |
} else { |
$message .= ','; |
$message .= ','; |
} |
} |
Line 198 sub print_certstatus {
|
Line 228 sub print_certstatus {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$message .= &Apache::loncommon::end_data_table().'</fieldset>'; |
$message .= &Apache::loncommon::end_data_table().'</fieldset>'; |
} else { |
} else { |
|
if (keys(%csr)) { |
|
foreach my $file (keys(%csr)) { |
|
if (ref($hashref->{$file.'-csr'}) eq 'HASH') { |
|
$message .= $file.'-csr=yes,'; |
|
foreach my $item (@fields) { |
|
$message .= $hashref->{$file.'-csr'}->{$item}.','; |
|
} |
|
$message =~ s/,$//; |
|
$message .= '&'; |
|
} |
|
} |
|
} |
$message =~ s/\&$//; |
$message =~ s/\&$//; |
} |
} |
$message .= "\n"; |
$message .= "\n"; |