To do it as a proper feature would involve extra api at the client library and gssapi layers that I don't think is worth the trouble. However, it would be really simple to hack something in yourself that would dump out the last server cert that the client connected to, when the subject doesn't match.

This snippet placed at gsi/gssapi/source/library/init_sec_context.c:308 (just after the subject mismatch error gets printed) will do just that:

{
    X509 * xxcert;
    FILE * xxfile;

    xxfile = fopen("/tmp/last_cert", "w");
    globus_gsi_cred_get_cert(
        context->peer_cred_handle->cred_handle, &xxcert);
    PEM_write_X509(xxfile, xxcert);
    fclose(xxfile);
}

Then the cert can be prodded with grid-cert-info or any other x509 tools you like. You could do something like set the filename in an env var and only dump the cert if the env is set.

Mike

On 12/5/2011 4:56 PM, [email protected] wrote:
Looks like there is no way to see other cert attributes such as expiration 
daten right?

Since that sort of information has to be available to the ssl client, could we 
put in a feature request for globus-url-copy to have an option to display all 
the ssl x.509 information it can?

JP
Sent via BlackBerry from T-Mobile

-----Original Message-----
From: Eric Blau<[email protected]>
Date: Mon, 5 Dec 2011 15:01:19
To: JP Navarro<[email protected]>
Cc: Lukasz Lacinski<[email protected]>; Stu 
Martin<[email protected]>;<[email protected]>; Mike Link<[email protected]>
Subject: Re: Is there a way to retrieve a GridFTP's x.509 certificate
  information

I just chatted with Mike Link, and, while he didn't have an immediate full 
solution, he did
mention a couple of ways to get some information.

If a host does not have certificates in place for its gridftp server, it will 
give an error if you
connect (with telnet or netcat) and issue "auth gssapi".  If it does have a certificate, 
it will give a "334" response:

[eblau@forge ~]$ telnet grid-forge.ncsa.xsede.org 2812                  Trying 
141.142.164.101...
Connected to forge.ncsa.illinois.edu (141.142.164.101).
Escape character is '^]'.
220 GridFTP Server 2.8 (gcc64, 1217607445-63) [Globus Toolkit 5.0.4] - Running 
in Non-Striped Mode. ready.
auth gssapi
334 Using authentication type; ADAT must follow.

I think that this method would issue an error if the certificate was invalid 
(expired).



Also, you can get globus-url-copy to divulge the subject name of the gridftp 
server certificate by specifying a subject with -s that you know is incorrect, 
and watching the error message:

[eblau@forge ~]$ globus-url-copy -v -s "/DC=org/DC=doegrids/OU=People/CN=Eric Blau 
216112/CN=1981729001" gsiftp://grid-forge.ncsa.xsede.org:2812/etc/group ./foobar
Source: gsiftp://grid-forge.ncsa.xsede.org:2812/etc/
Dest:   file:///uf/ncsa/eblau/./
   group  ->   foobar

error: globus_ftp_control: gss_init_sec_context failed
GSS Major Status: Unexpected Gatekeeper or Service Name
globus_gsi_gssapi: Authorization denied: The name of the remote entity 
(/C=US/O=National Center for Supercomputing 
Applications/OU=Services/CN=forge.ncsa.illinois.edu), and the expected name for 
the remote entity (/DC=org/DC=doegrids/OU=People/CN=Eric Blau 
216112/CN=1981729001) do not match


Not sure if this solves the problem, but thought I'd pass the information along.

Eric


----- Original Message -----
XSEDE would like its monitoring system (Inca) to access information
about a GridFTP server's X.509 certificate.

Is there a way to interact with a GridFTP server and retrieve server
certificate information?

Thanks,

JP

Begin forwarded message:

From: "Smallen, Shava"<[email protected]>
Subject: FW: Inca XSEDE Notification:
gridftp-nonstriped-auth-dms-4.2.0 on tacc-ranger FAIL
Date: December 5, 2011 11:55:38 AM CST
To: David Carver<[email protected]>
Cc: JP Navarro<[email protected]>

Hey David,

I'm not sure if there is a way to read the gridftp credentials
remotely as
you can with GRAM so we can warn ahead of time. We have some tests
that
execute:

openssl s_client -connect host:port

But I get a protocol error when I try to do that against gridftp
servers.
JP, do you know?

Thanks,
Shava

On 12/5/11 9:48 AM, "Inca Inca"<[email protected]>  wrote:

The following Inca test has FAILED:

RAN AT: 2011-12-05T09:48:07.000-0800

RAN ON: login3.ranger.tacc.utexas.edu

TEST: data.transfer.gridftp.unit.auth-dns

INPUT PARAMETERS: -dest=gridftp.ranger.tacc.teragrid.org:2811
-help=no
-log=0 -timeout=60 -verbose=1 -version=no

ERROR MESSAGE: globus-url-copy -len 1280 file:///dev/zero
gsiftp://129.114.50.166:2811//dev/null failed:
error: globus_ftp_client: the server responded with an error
530 530-globus_xio: Server side credential failure
530-globus_gsi_gssapi: Error with GSI credential
530-globus_gsi_gssapi: Error with gss credential handle
530-globus_credential: Error with credential: The host credential:
/etc/grid-security/hostcert.pem
530- with subject:
/C=US/O=UTAustin/OU=TACC/CN=gridftp2.ranger.tacc.utexas.edu
530- has expired xx minutes ago.
530-
530 End.



gridftp.ranger.tacc.teragrid.org mapped to the following ips:
129.114.50.166



details at
http://inca.xsede.org/inca/jsp/instance.jsp?xsl=instance.xsl&nickname=grid
ftp-nonstriped-auth-dms-4.2.0&resource=tacc-ranger&collected=2011-12-05T09
:48:07.000-08:00


Reply via email to