Beispiel #1
0
 protected function get_schema_instalacion()
 {
     $instalacion = $this->proyecto->get_instalacion();
     $instancia = $this->proyecto->get_instancia();
     $params = $instalacion->get_parametros_base($instancia->get_ini_base());
     return isset($params['schema']) ? $params['schema'] : null;
 }
 /**
  * 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");
 }