"", // "O" => "Personal", "C" => "CA", "emailAddress" => // ); // Generate a new private (and public) key pair $privkey = openssl_pkey_new(); // Generate a certificate signing request $csr = openssl_csr_new($dn, $privkey); openssl_pkey_export($privkey, $pkeyout, "mypassword"); //generic password // pass CSR to $out openssl_csr_export($csr, $out); // Show any errors that occurred here while (($e = openssl_error_string()) !== false) { echo $e . "\n"; } $url = 'https://www.cacert.org/api/ccsr.php'; $fields = array( 'username' => urlencode(""), // 'password' => urlencode(""), // 'email[0]' => urlencode(""), // 'name' => urlencode("CAcert WoT User"), 'codesign' => urlencode(0), 'optionalCSR' => urlencode($out) ); foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } rtrim($fields_string, '&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch,CURLOPT_POST, count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); //execute post $result = curl_exec($ch); //close connection curl_close($ch); ?>