Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include('File/X509.php');
- include('Crypt/RSA.php');
- // create private key / x.509 cert for stunnel / website
- $privKey = new Crypt_RSA();
- //extract($privKey->createKey());
- $privKey->loadKey('-----BEGIN RSA PRIVATE KEY-----
- MIICXQIBAAKBgQDMusKBreFjkYfM1onUcjsaDse10EO2YkLudj/OKxNWSi+ctjg3Ir8J1hZkcCZq
- GAiiEkdB7e9LIke0x+W0TLK5NOZ5nxrRpqo3z/CHHo+ylxcJ2rYYoqrszbqeUoT+SgkTvKcuCnuJ
- mzgyebfCyciKxWidE1HDIDXILPSDbEyqpQIDAQABAoGAIeJ7VPlRh6hLoLSVhWsOqyZtGYOJ4YLr
- 7wn1T4tDnRGURczHCyEeG2Oqux7wzLiDnUeHMbtO0tGuqpY3R5s2LTM/KmeGyYqOZUUjTQWzo04g
- 34VM+PuNCnJKabYwkQOMc5zxqpCGdVch5x+Pi2TX6IMzIgDCh7Ferz+1uR2sbhUCQQD2RVLDefjM
- MrSgon13V/qJmGnY41H9qiYF/aAS5AYx4HKJpLNkhIgZsA4vWo+NZrQR7RWCPHfyR3fQmQSVP4KD
- AkEA1NFOWYLxafZfNEt2H5EwrtOq7ibuL/0eTvmr199LZzYH/vB1o+9ElvStPHKDTg1cwJDcLcf9
- XopBMxqAn9X1twJBAOikODj9AjE0PTn6Bfg1njFZT7RZmdy9XUoPe6YczlVTqB+q/OSZ5lAN5niJ
- Xk6/lJ/SjZ0ILm8rYF4oDxJGeq0CQD3prnuIBqenD0dtdK32VU1nMuEZ3k2Du9+J7x5cTdl29JiM
- aA0LPM8V25gsUFrStFspSYTgG6v3WMR/P1BAtL0CQQCIIuGzsZgQP4ZvTkzEEteniRQtaMtuBBVV
- wQxt3ZO2YUkPruR8Kt0jwbEcf/mEPBO0bBl1e8IRg3eZaf5f3s8y
- -----END RSA PRIVATE KEY-----');
- $pubKey = new Crypt_RSA();
- $pubKey->loadKey($privKey->getPublicKey());
- $pubKey->setPublicKey();
- $subject = new File_X509();
- $subject->setDNProp('id-at-organizationName', 'phpseclib demo cert');
- //$subject->removeDNProp('id-at-organizationName');
- $subject->setPublicKey($pubKey);
- $subject->setDomain('www.whatever.com');
- $issuer = new File_X509();
- $issuer->setPrivateKey($privKey);
- $issuer->setDN($subject->getDN());
- $x509 = new File_X509();
- $x509->setSerialNumber('19');
- //$x509->setStartDate('-1 month'); // default: now
- //$x509->setEndDate('+1 year'); // default: +1 year
- $result = $x509->sign($issuer, $subject);
- $subject = new File_X509();
- $subject->loadX509($result);
- $asn1 = new File_ASN1();
- $subject->signatureSubject[0] = chr(0x20) ^ $subject->signatureSubject[0];
- $result = $x509->sign($issuer, $subject);
- $new = $x509->saveX509($result, 1);
- $new[0] = chr(0x20) ^ $new[0];
- $new = "-----BEGIN CERTIFICATE-----\r\n" . chunk_split(base64_encode($new)) . '-----END CERTIFICATE-----';
- //print_r($result); exit;
- echo "the stunnel.pem contents are as follows:\r\n\r\n";
- echo $privKey->getPrivateKey();
- echo "\r\n";
- echo $new;
- echo "\r\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement