Witam,

potrzebuje waszej pomocy a chodzi mi o coś takiego.

Mam skrypt do tworzenia csr do certyfikatów i muszę zapisać go w pliku i wysłać przez api systemu HRD

Tak wygląda skrypt

  1. $dn = array(
  2. "countryName" => $_POST['country'],
  3. "stateOrProvinceName" => $_POST['wojewodztwo_region'],
  4. "localityName" => $_POST['miasto'],
  5. "organizationName" => $_POST['nazwa_firmy'],
  6. "organizationalUnitName" => $_POST['nazwa_firmy'],
  7. "commonName" => $_POST['domena'],
  8. "emailAddress" => $_POST['email']
  9. );
  10.  
  11. // Generate a new private (and public) key pair
  12. $privkey = openssl_pkey_new(array(
  13. "private_key_bits" => 2048,
  14. "private_key_type" => OPENSSL_KEYTYPE_RSA,
  15. ));
  16.  
  17. // Generate a certificate signing request
  18. $csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
  19.  
  20. // Generate a self-signed cert, valid for 365 days
  21. $x509 = openssl_csr_sign($csr, null, $privkey, $days=30, array('digest_alg' => 'sha256'));
  22.  
  23.  
  24. // Save your private key, CSR and self-signed cert for later use
  25. openssl_csr_export($csr, $csrout);
  26. openssl_x509_export($x509, $certout);
  27. openssl_pkey_export($privkey, $pkeyout, "mypassword");
  28.  
  29. $csr_privkey=$csrout.$certout.$pkeyout;
  30.  
  31.  
  32.  
  33.  
  34. // Show any errors that occurred here
  35. while (($e = openssl_error_string()) !== false) {
  36. echo "<pre>";
  37. echo $e . "\n";
  38. echo "</pre>";
  39. }


Tak jak przeczytałem ten odpowiada za utworzenie pliku zawartości na serwerze ale chce go wysłać przy tworzeniu.


  1. $plik = fopen('index.html','w');
  2.  
  3. $zawartosc ="" ;
  4. $zawartosc .="" ;
  5.  
  6. fwrite($plik, $zawartosc);


A tak wygląda cały mój skrypt jak zaczołem robić


  1. $dn = array(
  2. "countryName" => $_POST['country'],
  3. "stateOrProvinceName" => $_POST['wojewodztwo_region'],
  4. "localityName" => $_POST['miasto'],
  5. "organizationName" => $_POST['nazwa_firmy'],
  6. "organizationalUnitName" => $_POST['nazwa_firmy'],
  7. "commonName" => $_POST['domena'],
  8. "emailAddress" => $_POST['email']
  9. );
  10.  
  11. // Generate a new private (and public) key pair
  12. $privkey = openssl_pkey_new(array(
  13. "private_key_bits" => 2048,
  14. "private_key_type" => OPENSSL_KEYTYPE_RSA,
  15. ));
  16.  
  17. // Generate a certificate signing request
  18. $csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
  19.  
  20. // Generate a self-signed cert, valid for 365 days
  21. $x509 = openssl_csr_sign($csr, null, $privkey, $days=30, array('digest_alg' => 'sha256'));
  22.  
  23.  
  24. // Save your private key, CSR and self-signed cert for later use
  25. openssl_csr_export($csr, $csrout);
  26. openssl_x509_export($x509, $certout);
  27. openssl_pkey_export($privkey, $pkeyout, "mypassword");
  28.  
  29. $csr_privkey=..;
  30.  
  31. $plik = fopen('csr.cer','w');
  32.  
  33. // przypisanie zawartości do zmiennej
  34. $zawartosc = $csrout;
  35. $zawartosc .= $certout;
  36. $zawartosc .= $pkeyout;
  37. fwrite($plik, $zawartosc);
  38.  
  39.  
  40. // Show any errors that occurred here
  41. while (($e = openssl_error_string()) !== false) {
  42.  
  43. echo $e . "\n";
  44.  
  45. }


Ale nie wiem jak mam zrobić aby wysłać plik w locie.