diff options
Diffstat (limited to 'mod/foafssl/cert_proxy.php')
-rw-r--r-- | mod/foafssl/cert_proxy.php | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/mod/foafssl/cert_proxy.php b/mod/foafssl/cert_proxy.php new file mode 100644 index 000000000..5dc4f8b67 --- /dev/null +++ b/mod/foafssl/cert_proxy.php @@ -0,0 +1,64 @@ +<?php + +//----------------------------------------------------------------------------------------------------------------------------------- +// +// Filename : cert.php +// Version : 1.0 +// Date : 3rd Jan 2009 +// +// Decription : This script creates an PKCS12 encoded SSL Certificate which is file transfered to the script caller. +// +// Usage : cert.php?foaf=http://foaf.me/jsmith& +// commonName=J Smith& +// emailAddress=jsmith@example.com& +// organizationName=My Company Ltd& +// organizationalUnitName=Technology Division& +// localityName=Newbury& +// stateOrProvinceName=Berkshire& +// countryName=GB& +// password=secret +// +// All parameters except 'foaf' are optional. Some parameters if missing will default as per openssl.cnf +// +// See Also : Using PHP to create self-signed X.509 Client Certificates +// http://foaf.me/Using_PHP_to_create_X.509_Client_Certificates.php +// +//----------------------------------------------------------------------------------------------------------------------------------- + +// Check if the foaf loaction is specified in the script call + +function request_identity_p12($commonName, $webid, $pubkey, $hours=0.0, $days=0.0) { + $post_fields = array(); + $post_fields['webid'] = $webid; + $post_fields['spkac'] = $pubkey; + $post_fields['hours'] = $hours; + $post_fields['days'] = $days; + $post_fields['keygensubmit'] = "submit certificate request"; + $post_fields['cn'] = $commonName; + $ch = curl_init('http://webid.myxwiki.org/xwiki/bin/view/WebId/CreateCert'); + curl_setopt($ch, CURLOPT_POST ,1); + curl_setopt($ch, CURLOPT_POSTFIELDS ,$post_fields); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1); + curl_setopt($ch, CURLOPT_HEADER ,0); // DO NOT RETURN HTTP HEADERS + curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // RETURN THE CONTENTS OF THE CALL + // should check the error code and warn if something goes wrong + $Rec_Data = curl_exec($ch); + header('Last-Modified: '.date('r+b')); + header('Accept-Ranges: bytes'); + header('Content-Length: '.strlen($Rec_Data)); + header('Content-Type: application/x-x509-user-cert'); + echo $Rec_Data; + return $Rec_Data; + +} + +/*// Create a PKCS12 encoded SSL certificate +if ( $p12 = request_identity_p12( + $countryName, $stateOrProvinceName, $localityName, $organizationName, $organizationalUnitName, $commonName, $emailAddress, + $foafLocation, $pubkey ) ) +{ + // Send the PKCS12 encoded SSL certificate to the script caller as a file transfer + download_identity_p12($p12, $foafLocation); +}*/ + +?> |