Ejemplo n.º 1
0
 /**
  * Genera los archivos para los certificados del proyecto
  * @param toba_modelo_proyecto $proyecto
  * @param string $directorio
  * @throws toba_error_usuario 
  */
 static function generar_certificados(toba_modelo_proyecto $proyecto, $directorio = null)
 {
     //Si no se pasa directorio de salida, asigno por defecto el de instalacion del proyecto
     if (is_null($directorio)) {
         $directorio = $proyecto->get_dir_instalacion_proyecto();
     }
     //Busco en el directorio de la instalacion de Toba el archivo de configuracion para openssl
     $dir_inst = $proyecto->get_instalacion()->get_dir();
     if (!file_exists($dir_inst . '/openssl.ini')) {
         throw new toba_error_usuario("No existe el archivo '{$dir_inst}/openssl.ini'. Necesita copiarlo de la carpeta toba/php/modelo/var");
     }
     $cmd = "openssl req -x509 -nodes -days 20000 -newkey rsa:1024 -keyout {$directorio}/privada.key.sign -config {$dir_inst}/openssl.ini -out {$directorio}/publica.crt";
     $exito = toba_manejador_archivos::ejecutar($cmd, $stdout, $stderr);
     if ($exito != '0') {
         throw new toba_error_usuario($stderr . "\n Asegurese tener instalados los binarios de OpenSSL y disponibles en el path. Para comprobar ejecute 'openssl version'");
     }
     $cmd = "openssl rsa -in {$directorio}/privada.key.sign -out {$directorio}/privada.key";
     $exito = toba_manejador_archivos::ejecutar($cmd, $stdout, $stderr);
     if ($exito != '0') {
         throw new toba_error_usuario($stderr);
     }
     unlink("{$directorio}/privada.key.sign");
 }
Ejemplo n.º 2
0
 /**
  * @param toba_modelo_proyecto $proyecto
  * @param $id_servicio
  * @return toba_ini
  */
 static function get_ini_cliente(toba_modelo_proyecto $proyecto, $id_servicio)
 {
     $directorio = $proyecto->get_dir_instalacion_proyecto() . "/rest/{$id_servicio}";
     $ini = new toba_ini($directorio . '/cliente.ini');
     return $ini;
 }