[PHP] Génération de certificats RSA : module spécial hormis OpenSSL ?

Génération de certificats RSA : module spécial hormis OpenSSL ? [PHP] - PHP - Programmation

Marsh Posté le 04-10-2003 à 16:14:32    

Bonjour !
 
Y a un truc que je comprends pas.
 
je change d'hébergeur, et les deux ont compilé leur apache avec OpenSSL .
 
Je peux générer des clefs facilement avec :
 

Code :
  1. $privkey = openssl_pkey_new();


 
Pas de souci.
 
Par contre, dés que je veux générer une requete de signature de certificat juste après, j'ai droit a un magnifique ERROR404 :/
 

Code :
  1. // Génération d'une requête de signature de certificat
  2.   //$csr = openssl_csr_new( $dn, $privkey );


 
$dn est bien évidemment rempli et fonctionnel.
 
Ce qui est étrange, c'est que le code que j'utilise marche sur l'autre serveur, mais pas sur celui la.
 
Il manque un truc ? Y a une subtilité a connaitre ?
 
Les deux font tourner PHP 4.3.3 avec OpenSSL 0.9.6i ...


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 04-10-2003 à 16:14:32   

Reply

Marsh Posté le 04-10-2003 à 18:47:34    

Atchoum !


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 04-10-2003 à 20:59:53    

Sniiiiiiiiiiiiiiiiiiiiiiiiiiirfl


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 04-10-2003 à 21:04:00    

registrer_global a off peut-etre ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 04-10-2003 à 23:02:36    

C'est pas un probleme de variable, mais bien autre chose.
 
Si je décommente cette ligne la :
 
 //$csr = openssl_csr_new( $dn, $privkey );
 
Ca part en couille et ca finit par un 404 error, peu importe ce que j'ai mis avant


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 04-10-2003 à 23:12:26    

[:kiki], justement c'est ton $dn qui n'est pas valable ...... tu generes $privkey avant sans souci .....
 


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 04-10-2003 à 23:27:29    

register_globals On On  
 
:cry:
 
kesskecapeutetre :cry:


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 04-10-2003 à 23:39:40    

d'ou vient ton $dn ? ....
c'est un tableau, listes-le pour savoir ce qu'il contient !!!


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 05-10-2003 à 00:32:33    

ben c'est un tableau rempli comme indiqué sur la doc php...
 
Le meme code ( copier/coller ) marche sur un autre serveur, je reprécise hein.
 

Code :
  1. $dn = array(
  2.       "countryName" => "FR",
  3.       "stateOrProvinceName" => "france",
  4.       "localityName" => "france",
  5.       "organizationName" => "ocbase",
  6.       "organizationalUnitName" => "ocbase",
  7.       "commonName" => "http://www.ocbase.com",
  8.       "emailAddress" => "postmaster@ocbase.com"
  9.   );


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 00:34:19    

et c'est quoi ton message d'erreur en fait ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 05-10-2003 à 00:34:19   

Reply

Marsh Posté le 05-10-2003 à 11:09:27    

Je te dis qu'il y a pas de message d'erreur, j'ai direct une erreur 404 si je décommente :D


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 11:11:45    

Le code il vient de la, bêtement :
 
http://www.php.net/manual/en/funct [...] sr-new.php
 

Code :
  1. <?php
  2. // Fill in data for the distinguished name to be used in the cert
  3. // You must change the values of these keys to match your name and
  4. // company, or more precisely, the name and company of the person/site
  5. // that you are generating the certificate for.
  6. // For SSL certificates, the commonName is usually the domain name of
  7. // that will be using the certificate, but for S/MIME certificates,
  8. // the commonName will be the name of the individual who will use the
  9. // certificate.
  10. $dn = array(
  11.     "countryName" => "UK",
  12.     "stateOrProvinceName" => "Somerset",
  13.     "localityName" => "Glastonbury",
  14.     "organizationName" => "The Brain Room Limited",
  15.     "organizationalUnitName" => "PHP Documentation Team",
  16.     "commonName" => "Wez Furlong",
  17.     "emailAddress" => "wez@php.net"
  18. );
  19. // Generate a new private (and public) key pair
  20. $privkey = openssl_pkey_new();
  21. // Generate a certificate signing request
  22. $csr = openssl_csr_new($dn, $privkey);
  23. // You will usually want to create a self-signed certificate at this
  24. // point until your CA fulfills your request.
  25. // This creates a self-signed cert that is valid for 365 days
  26. $sscert = openssl_csr_sign($csr, null, $privkey, 365);
  27. // Now you will want to preserve your private key, CSR and self-signed
  28. // cert so that they can be installed into your web server, mail server
  29. // or mail client (depending on the intended use of the certificate).
  30. // This example shows how to get those things into variables, but you
  31. // can also store them directly into files.
  32. // Typically, you will send the CSR on to your CA who will then issue
  33. // you with the "real" certificate.
  34. openssl_csr_export($csr, $csrout) and debug_zval_dump($csrout);
  35. openssl_x509_export($sscert, $certout) and debug_zval_dump($certout);
  36. openssl_pkey_export($privkey, $pkeyout, "mypassword" ) and debug_zval_dump($pkeyout);
  37. // Show any errors that occurred here
  38. while (($e = openssl_error_string()) !== false) {
  39.     echo $e . "\n";
  40. }
  41. ?>


 
L'erreur sous IE :

Code :
  1. Impossible d'afficher la page
  2. La page que vous recherchez est actuellement indisponible. Le site Web rencontre peut-être des difficultés techniques ou il vous faut peut-être modifier les paramètres de votre navigateur.


 
Tjs ca, avec le code de l'exemple ou le mien.
 
Quand je dis que c'est un problème de serveur, je mens po :D
 
Bref...


Message édité par Tetedeiench le 05-10-2003 à 11:14:36

---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 14:32:41    

ATCHIAAAAAAAAAAAAAAAAAAAAAAA !


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 19:10:31    

Qu'est ce que je m'enrhube en ce moment :'(


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 23:05:16    

FLLLLLLLLBLBLBLBLBLBLBLBLBL


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 23:07:27    

si tu es convaincu que le pb vient du serveur ... compares le phpinfo de celui-ci au précédent plutôt que de t'enrhumer ici :/....
 
ou demandes des précisions a l'hebergeur .....


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 05-10-2003 à 23:13:42    

ben j'ai beau comparer je vois pas le souci...
 
Je file deux phpinfo, vous allez voir :
 
http://www.ocbase.com/phpinfo.php
http://ns2064.ovh.net/~ocbase/phpinfo.php
 
si tu vois un truc bizarre...
 
Le code marche sur le premier, pas le second.
 
L'hébergeur est dans les deux cas OVH : 90Plan mutualisé pour l'un, Serveur dédié pour l'autre.


Message édité par Tetedeiench le 05-10-2003 à 23:14:25

---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 23:25:33    

c'est pas a toi de generer un certificat sur le dedié ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 05-10-2003 à 23:34:00    

Premier serveur :
 
'--with-imap-ssl' '--with-openssl'
CURL Information libcurl/7.10.2 OpenSSL/0.9.6k zlib/1.1.3
imap SSL Support enabled
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.6i [engine] Feb 19 2003
 
 
 
 
 
Second serveur :
 
'--with-imap-ssl' '--with-openssl'
Loaded Modules mod_ssl,  
SERVER_SOFTWARE Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.3 mod_ssl/2.8.11 OpenSSL/0.9.7b
CURL Information libcurl/7.10.6 OpenSSL/0.9.6i zlib/1.1.3  
SSL Support enabled  
OpenSSL support enabled  
OpenSSL VersionOpenSSL 0.9.6i [engine] Feb 19 2003
_SERVER["SERVER_SOFTWARE"] Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.3 mod_ssl/2.8.11 OpenSSL/0.9.7b
 
 
Je n'ai ccopier que les infos contenant ssl et dans le premier je vois pas de mod_ssl de chargé, ca viendrais pas de là ton blème?

Reply

Marsh Posté le 05-10-2003 à 23:36:29    

Justement, c'est sur le second que ca foire, pas dans le premier :D


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 23:38:12    

simogeo a écrit :

c'est pas a toi de generer un certificat sur le dedié ?


 
C'est ce que j'essaie désespérément de faire, générer un certificat a partir d'une clé privée, et pour ca t'as besoind e rien d'autre que la clef privée justement...


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 23:39:43    

arrffff alors je sais pas trop mais ca serait sympa de nous tenir au courant :)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 05-10-2003 à 23:46:32    

Je vais le faire t'inquiète, mais la, ca m'handicape vraiment :/


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 23:53:30    

ben je comprend mais apparemment ici personne ne peut t'aider
 
essayes ici : http://groups.google.fr/groups?q=o [...] che+Google


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 06-10-2003 à 00:11:12    

J'ai déjà fait un post sur comp.lang.php , mais comme le premier serveur a été configuré par OVH et le second par le propriétaire du dédié, ben...  
 
faut que je sache quoi dire au propriétaire du dédié pour qu'il l'active :/


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 06-10-2003 à 10:43:53    

Sniiiiiiiiirfl


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 06-10-2003 à 13:11:35    

ATCHAAAAAAAAAAAAAAAAAAAAaa ( pitié, pour mes ups, je vais tomber en rade et je vais devoir taper dans la gastro, alors pour vous éviter ca... )


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 19-05-2005 à 16:33:19    

Excusez moi mais finalement j'ai le même problème et je suis bloqué pareil que "Tetedeiench" vous pouvez m'aider vous avez avancé depuis 2003??
 
Merci d'avance !


Message édité par syruis le 19-05-2005 à 16:49:36
Reply

Marsh Posté le 19-05-2005 à 19:07:40    

Il est peut-etre mort de son rhume depuis ...
 
Sinon, t'as pas des details ? genre messages d'erreurs ? qqch dans le log d'apache ?

Reply

Marsh Posté le 19-05-2005 à 21:56:05    

moi pas apache IIS... dsl j'envoie l'erreur dès que je suis au boulot mais c'est une erreur openssl :(


Message édité par syruis le 19-05-2005 à 21:56:25
Reply

Marsh Posté le 20-05-2005 à 09:22:58    

cerel a écrit :

Il est peut-etre mort de son rhume depuis ...
 
Sinon, t'as pas des details ? genre messages d'erreurs ? qqch dans le log d'apache ?


 
Voila l'erreur =>
 

Citation :

error:02001003:system library:fopen:No such process error:2006D080:BIO routines:BIO_new_file:no such file error:0E064002:configuration file routines:CONF_load:system lib error:0200107B:system library:fopen:Unknown error error:2006D002:BIO routines:BIO_new_file:system lib error:0E064002:configuration file routines:CONF_load:system lib


 
voila mon code=>
 

Code :
  1. <?
  2. putenv("OPENSSL_CONF=D:/http/I-DCE/Thomas/openssl.cnf" );
  3. /*
  4. Procèdure de création d'un certificat avec php 5 et le module openssl...
  5. Rappel procédure openssl selon Eric Gaduel:
  6. openssl genrsa -out ca/%1.key 1024 gen ca private key
  7. openssl req -new -key ca/%1.key -out ca/%1.crs -config ./openssl.cnf gen ca crs
  8. openssl ca -config ./openssl.cnf -name CA_default -extensions CLIENT_RSA_SSL -in ca/%1.crs -out ca/newcerts/%1.pem gen user pem
  9. openssl pkcs12 -export -inkey ca/%1.key -in ca/newcerts/%1.pem -out %1.p12 -name "Certificat client" gen p12 user
  10. - openssl_csr_new creation d'un nouveau csr ....
  11. - openssl_csr_sign creation d'un nouveau cer a partir d'un csr ....
  12. */
  13. // Assigne les valeurs du nom distingué à utiliser avec le certificat
  14. // Vous devez remplacer les valeurs suivantes pour qu'elles correspondent
  15. // au nom de votre compagnie, ou, plus préciséement, le nom de la personne
  16. // qui représente le site de votre compagnie pour qui vous générez des
  17. // clés. Pour les certificats SSL, le commonName est généralement le nom de domaine
  18. // pour lequel vous installez le certificat, mais pour les certificats
  19. // le commonName sera le nom de la personne qui utilisera le cerficat.
  20. $e = null;
  21. // Génère la clé privé et publique
  22. //$privkey = openssl_pkey_new();
  23. $privkey = array("-----BEGIN RSA PRIVATE KEY-----
  24. MIICXgIBAAKBgQDiA5lqgAciAUW9ZjtmeIAfFMab42RkAKaqP9DsuPwWKEZrWsjP
  25. [...]
  26. 3MiVly+1iFS9OjtMeqKdxs3dl8CdWn/J4vOo0MpKzJiw3A==
  27. -----END RSA PRIVATE KEY-----",";;cer!!" );
  28. // Génère la requête de signature de certificat
  29. //$csr = openssl_csr_new($dn, $privkey);
  30. //$handle = fopen("/home/rasmus/file.txt", "r" );
  31. //$csr = fopen("user.csr", "r+" );//lecture +
  32. $csr = "-----BEGIN CERTIFICATE REQUEST-----
  33. M[...]N2QfrA/WN4Zzidkc7FGjyDnjKZr
  34. EQcuBPn5cgvujQLQ2nMDeQIdoUtgZwpGGEcao07Oymo+gkFOpdGwhiHIxMkkMBip
  35. GpI=
  36. -----END CERTIFICATE REQUEST-----";
  37. $crt="-----BEGIN CERTIFICATE-----
  38. M[...]5
  39. -----END CERTIFICATE-----";
  40. // Vous souhaiterez généralement créer un certificat auto chiffré
  41. // une fois que votre autorité de certification accède à votre requête
  42. // Cette commande crée une certificat auto chiffré
  43. /*array(
  44. "config" => name of openssl.cnf file to use
  45. "config_section_name" => default section of config file to use
  46. "digest_alg" => name of digest algorithm to use
  47. "x509_extensions" => name of section describing extensions to add to
  48.                       generated certs
  49. "req_extensions" =>  name of section describing extensions to add to
  50.                       generated CSRs
  51. "private_key_bits" => the number of bits to use when generating a private
  52.                        key
  53. "private_key_type" => One of OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA,
  54.                        OPENSSL_KEYTYPE_DH.  Only RSA keys are supported
  55.                        at this time.
  56. );*/
  57. $config = array(
  58.   "config" => "file://D:/http/I-DCE.Thomas/openssl.cnf",
  59.   "digest_alg" => "sha1",
  60.   "private_key_bits" => 1024,
  61.   "private_key_type" => OPENSSL_KEYTYPE_DSA,
  62.   "encrypt_key" => false
  63. );
  64. $sscert = openssl_csr_sign($csr,null,$privkey, 365,$config,11);
  65. /*if($sscert==false){
  66. echo "Bug dans la création de cer!";
  67. echo "<br />";
  68. echo "<br />";
  69. }else{*/
  70. $certout = "file://D:/http/i-DCE/Thomas/user.cer";
  71. /*if(openssl_x509_export($sscert, $certout)==false){
  72. }else{
  73. echo $certout;
  74. }
  75. }*/
  76. //echo $certout;
  77. while (($e = openssl_error_string()) !== false) {
  78.     echo $e . "\n";
  79. }
  80. ?>


 
On est deux dessus et rien du tout !
 
ta des exemples de codes qui focntionnent?


Message édité par syruis le 20-05-2005 à 09:23:39
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed