PHP - Openssl Help
Code: [Select]
<?php // Fill in data for the distinguished name to be used in the cert // You must change the values of these keys to match your name and // company, or more precisely, the name and company of the person/site // that you are generating the certificate for. // For SSL certificates, the commonName is usually the domain name of // that will be using the certificate, but for S/MIME certificates, // the commonName will be the name of the individual who will use the // certificate. $dn = array( "countryName" => "UK", "stateOrProvinceName" => "Somerset", "localityName" => "Glastonbury", "organizationName" => "The Brain Room Limited", "organizationalUnitName" => "PHP Documentation Team", "commonName" => "Wez Furlong", "emailAddress" => "wez@example.com" ); // Generate a new private (and public) key pair $privkey = openssl_pkey_new(); // Generate a certificate signing request $csr = openssl_csr_new($dn, $privkey); // You will usually want to create a self-signed certificate at this // point until your CA fulfills your request. // This creates a self-signed cert that is valid for 365 days $sscert = openssl_csr_sign($csr, null, $privkey, 365); // Now you will want to preserve your private key, CSR and self-signed // cert so that they can be installed into your web server, mail server // or mail client (depending on the intended use of the certificate). // This example shows how to get those things into variables, but you // can also store them directly into files. // Typically, you will send the CSR on to your CA who will then issue // you with the "real" certificate. openssl_csr_export($csr, $csrout) and var_dump($csrout); openssl_x509_export($sscert, $certout) and var_dump($certout); openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout); ?> Similar TutorialsHi, Im trying to convert a cert on the server its a .p12 file to a .pem. i first tried doing system(); commands but that never worked so i dont know what i can do now, i looked at some of the openssl php code but i cant find something that will do it, that or im doing it wrong.. heres what i was wanting to do; Code: [Select] system('openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 -passin pass:'); system('openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12 -passout pass:1234 -passin pass:'); system('openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem -passin pass:1234'); system('cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem'); this works on my mac, but i dont know how to do it online. thanks for reading hope someone can help. I would like to know how to incorporate or use the OpenSSL in my forms, particulary in logging in. Openssl is a php ext which can be enabled in a php build. If I enable this ext in my application on my own computer will it generate an ssl certificate or only speak to a certificate. Facebook suddenly requires SSL HTTPS secure canvas after 6 yrs of working with the interface all my apps are down can someone pls tell me what is going on!! Hi I develop a system using OPenSSL for Rijndael-256 (RSA-256) encryption. It works weel on an Apache server with PHP 5.3.2 on Windows and on a Linux server. But, on a Mac, I experience a weird problem. When I send a block to be decrypted, it works some times, and, without any reason, it stops and stays blocked for a while. And suddenly, it works again. When it crashes, I have the error message : Code: [Select] Wrong request for connection error:0906D06C:PEM routines:PEM_read_bio:no start line I searched on Google and couldn't really find any solution. I read it seemed to be related to the keys format. The public key used for encryption is like : Code: [Select] -----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY----- And the private is like : Code: [Select] -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----- Has anybody met that problem before and/or know where it comes from and how to fix it ? Thanks Hi, I'm setting up a website with a custom built shopping basket which I want to link in with Paypal. I have it all done except I'm having trouble getting the button encryption working using OpenSSL. I have all the certificates done and uploaded to Paypal but when I use this function; Code: [Select] $myPublicKey = openssl_pkey_get_public("requires/paypal/my-pubcert.pem"); openssl_public_encrypt($data, $crypttext, $myPublicKey); It produces this error; Quote openssl_public_encrypt(): key parameter is not a valid public key Now I originally did my own research to try to solve this problem but have been unable to do so which is why I'm hear, My findings indicated towards the openssl.cnf which could well be the issue as I haven't indicated in any code the location of the file, but I don't know how or where I do that. Any help with this is appreciated. Scarz Hi i have php script which i have been running on on my web server which is dreamhost which is working fine... but here's the twist i have just set-up a xampp server apache 2.2 on my windows 7 machine my website is running fine expect for the openssl encrypt script which is filing to encrypt here's a sample of my code. $MY_KEY_FILE = "c:\\xampp\\apache\\bin\\my-prvkey.pem"; # public certificate file to use $MY_CERT_FILE = "c:\\xampp\\apache\\bin\\my-pubcert.pem"; # Paypal's public certificate $PAYPAL_CERT_FILE = "c:\\xampp\\apache\\bin\\paypal_cert_pem.txt"; # path to the openssl binary $OPENSSL = "c:\\xampp\\apache\\bin\\openssl.exe"; $form = array('cmd' => '_xclick', 'business' => 'removed business name for security ', 'cert_id' => 'removed cert id for security', 'lc' => 'AU', 'custom' => ''.$id.'', 'invoice' => removed business name for security', 'currency_code' => 'AUD', 'no_shipping' => '1', 'item_name' => 'removed business name for security', 'item_number' => '1', 'amount' => $total ); $encrypted = paypal_encrypt($form); function paypal_encrypt($hash) { //Sample PayPal Button Encryption: Copyright 2006-2010 StellarWebSolutions.com //Not for resale - license agreement at //http://www.stellarwebsolutions.com/en/eula.php global $MY_KEY_FILE; global $MY_CERT_FILE; global $PAYPAL_CERT_FILE; global $OPENSSL; if (!file_exists($MY_KEY_FILE)) { echo "ERROR: MY_KEY_FILE $MY_KEY_FILE not found\n"; } if (!file_exists($MY_CERT_FILE)) { echo "ERROR: MY_CERT_FILE $MY_CERT_FILE not found\n"; } if (!file_exists($PAYPAL_CERT_FILE)) { echo "ERROR: PAYPAL_CERT_FILE $PAYPAL_CERT_FILE not found\n"; } //Assign Build Notation for PayPal Support $hash['bn']= 'StellarWebSolutions.PHP_EWP2'; $data = ""; foreach ($hash as $key => $value) { if ($value != "") { //echo "Adding to blob: $key=$value\n"; $data .= "$key=$value\n"; } } // here's where i believe the problem is when creating and signing the my_cert_file i had to specify where the openssl.cnf file was do i need to do same here.. -config c:\\xampp\\apache\\bin\\openssl.cnf $openssl_cmd = "($OPENSSL smime -sign -signer $MY_CERT_FILE -inkey $MY_KEY_FILE " . "-outform der -nodetach -binary <<_EOF_\n$data\n_EOF_\n) | " . "$OPENSSL smime -encrypt -des3 -binary -outform pem $PAYPAL_CERT_FILE"; exec($openssl_cmd, $output, $error); if (!$error) { return implode("\n",$output); } else { return "ERROR: encryption failed"; } echo $output; }; Hello guys, i need to create a code for making connections with SSL servers (particularly SMTPS and POP3S) and i know about the existence of OpenSSL extension. However, i'm in doubt about a basic issue: 1. Is this extension useful for creating SSL clients or SSL servers? I'm not a SSL expert, so maybe i'm misunderstanding something; i hope you can help me. Kind regards. I am trying to use SSH2 functions in PHP and I read the documentation for each LIBSSH2, OpenSSL and PECL SSH2 and I can't figure out how to install any of them on the Windows Server X64 box. Does anyone know how to do this? http://www.php.net/manual/en/ssh2.requirements.php http://pecl.php.net/package/ssh2 http://www.openssl.org/ http://www.libssh2.org/ Thanks, sanchez I have an ecommerce site on shared hosting enviroment. My ecommerce site stores customer data (name, address, email, phone, and item purchase) in mySQL database. (No super private data like credit card numbers or social security numbers.) Using openssl (openssl_cipher, iv, etc.), I've been encrypting this customer data and storing the encrypted data in mySQL. Today, I'm thinking "what's the point." It's like having a lockbox with the key on the wall above...
My thoughts: What do you all think? Sorry for my bad english. I am not from around these parts.
|