Hi,
I'm currently testing SCEP in OpenXPKI v3.14.2.
I added a new realm and then I tried to setup new endpoint for SCEP for this
new realm. I did all setup however I see these errors when requesting (GET) a
GetCAcert:
===
WAR Parsed URI: => [pid=708328]
-
scep.fcgi: Use of uninitialized value $rt in concatenation (.) or string at
/usr/lib64/perl5/site_perl/5.32.0/OpenXPKI/Client/Config.pm line 345.
===
It seems not to be getting the URI of the GET.
Troubleshooting I replaced scep.fcgi for this script:
===
#!/usr/bin/perl
use FCGI ();
my %fenv;
my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%fenv, 0,
FCGI::FAIL_ACCEPT_ON_INTR);
use Data::Dumper ();
$Data::Dumper::Sortkeys = 1;
while($request->Accept() >= 0) {
print("Content-Type: text/plain\r\n\r\n");
print("fenv: " . Data::Dumper::Dumper(\%fenv));
print("ENV: " . Data::Dumper::Dumper(\%ENV));
}
===
And indeed it gets the URI request from the Apache server:
===
fenv: $VAR1 = {
'CONTEXT_DOCUMENT_ROOT' => '/htdocs/xxxxxxxxx/pki/cgi-bin/scep.fcgi',
'CONTEXT_PREFIX' => '/scep',
'DOCUMENT_ROOT' => '/htdocs/xxxxxxxxx/pki',
'FCGI_ROLE' => 'RESPONDER',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'HTTP_ACCEPT' => '*/*',
'HTTP_ACCEPT_ENCODING' => 'identity',
'HTTP_CONNECTION' => 'close',
'HTTP_HOST' => 'pki.xxxxxxxxx',
'HTTP_USER_AGENT' => 'Wget/1.20.3 (linux-gnu)',
'LD_LIBRARY_PATH' => '/usr/lib64',
'PATH' =>
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
'PATH_INFO' => '/otro/pkiclient.exe',
'PATH_TRANSLATED' => '/htdocs/xxxxxxxxx/pki/otro/pkiclient.exe',
'QUERY_STRING' => 'operation=GetCACert&message=test',
'REMOTE_ADDR' => '10.204.196.1',
'REMOTE_PORT' => '54486',
'REQUEST_METHOD' => 'GET',
'REQUEST_SCHEME' => 'http',
'REQUEST_URI' =>
'/scep/otro/pkiclient.exe?operation=GetCACert&message=test',
'SCRIPT_FILENAME' => '/htdocs/xxxxxxxxx/pki/cgi-bin/scep.fcgi',
'SCRIPT_NAME' => '/scep',
'SCRIPT_URI' => 'http://pki.xxxxxxxxx/scep/otro/pkiclient.exe',
'SCRIPT_URL' => '/scep/otro/pkiclient.exe',
'SERVER_ADDR' => '10.204.196.1',
'SERVER_ADMIN' => 'webmaster@xxxxxxxxx',
'SERVER_NAME' => 'pki.xxxxxxxxx',
'SERVER_PORT' => '80',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
'UNIQUE_ID' => 'YSUd9Zo5HQgmfJMYbA0wsQAAAJI'
};
ENV: $VAR1 = {
'LD_LIBRARY_PATH' => '/usr/lib64',
'PATH' =>
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
};
===
So, discarding web server I look into the code.
I'm not a Perl expert, but looking into Config.pm it seems env values should be set by the
call to "$self->service()", but I don't know where to look for this function.
===
# generate name of the environemnt values from the service name
my $service = $self->service();
$self->endpoint('');
$self->route('');
# Test for specific config file based on script name
# SCRIPT_URL is only available with mod_rewrite
my ($ep, $nn, $rt);
if (defined $ENV{SCRIPT_URL}) {
($ep, $nn, $rt) = $ENV{SCRIPT_URL} =~
qq|${service}/([^/]+)(/([\\w\\-\\/]*))?\$|;
} elsif (defined $ENV{REQUEST_URI}) {
($ep, $nn, $rt) = $ENV{REQUEST_URI} =~
qq|${service}/([^/\?]+)(/([\\w\\-\\/]*))?(\\?.*)?\$|;
}
$self->logger()->warn("Parsed URI: $ep => $rt".($rt||''));
===
Versions:
perl v5.32.0
CGI v4.51
CGI::Fas v2.15
Regards,
Carlos Velasco
_______________________________________________
OpenXPKI-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openxpki-users