Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][OpenSSL] jak wygenerować certyfikat?
nitro18
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


Witam,

Mam problem. Mam wygenerowany klucz cakey.pem i certyfikat ca.cert dla CA jako certyfikat samopodpisujący. Teraz chciałbym z poziomu php wygenerować certyfikat klienta na podstawie CA. w openssl z linii komend wiem jak to zrobić, ale jak to zrobić w PHP?

mam kod:

  1. $fp = fopen('ca.pem', "r");
  2. $myKey = fread($fp, filesize('ca.pem'));
  3. $fp = fopen('ca.crt', "r");
  4. $myCert = fread($fp, filesize('ca.crt'));
  5.  
  6.  
  7. $privkey = openssl_pkey_get_private($myKey, '1234');
  8.  
  9.  
  10. $dn = array( "countryName" => 'PL',
  11. "stateOrProvinceName" => 'Poorskie',
  12. "localityName" => 'Somewhsddddity',
  13. "organizationName" => 'MySfdfdfdffelf',
  14. "organizationalUnitName" => 'Whadfdfdftever',
  15. "commonName" => 'www.wdfdfdfdfdfp.pl',
  16. "emailAddress" => 'usdsdsder@domain.com');
  17.  
  18.  
  19.  
  20.  
  21. $req_csr = openssl_csr_new ($dn, $req_key);
  22. $scert = openssl_csr_sign($req_csr, $myCert, $privkey, 365);
  23.  
  24.  
  25.  
  26. openssl_x509_export($scert, 'client.crt');


tylko nawala przy ostatniej linii? Może ktoś pomoże?

Dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nitro18
post
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


to dlaczego mi to działa:

  1. <?php
  2.  
  3. $config = array('private_key_bits' => 1024,
  4. 'x509_extensions' => 'v3_ca',
  5. 'req_extensions' => 'v3_req',
  6. 'digest_alg' => 'sha1',
  7. 'private_key_type' => OPENSSL_KEYTYPE_RSA
  8. );
  9. $dn = array( "countryName" => 'PL',
  10. "stateOrProvinceName" => 'State',
  11. "localityName" => 'SomewhereCity',
  12. "organizationName" => 'MySelf',
  13. "organizationalUnitName" => 'Whatever',
  14. "commonName" => 'mySelf',
  15. "emailAddress" => 'user@domain.com');
  16. $privkeypass = '1234';
  17. $numberofdays = 3650;
  18.  
  19. $privkey = openssl_pkey_new($config);
  20. $csr = openssl_csr_new($dn, $privkey);
  21. $sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays,array(),1);
  22.  
  23. openssl_x509_export_to_file($sscert,'ca.crt');
  24. openssl_pkey_export_to_file($privkey,'ca.pem', $privkeypass);
  25.  
  26.  
  27.  
  28.  
  29. ?>
  30.  
  31.  
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 03:19