Una forma sencilla de utilizar la colección oficial de scripts de shell de EasyRSA en su aplicación.
composer require evilfreelancer/easyrsa-php
Por cierto, la biblioteca EasyRSA admite los marcos Laravel y Lumen, detalles aquí.
Más ejemplos los puedes encontrar aquí.
Antes de comenzar a utilizar este script, debe descargar el paquete easy-rsa.
require_once __DIR__ . ' /../vendor/autoload.php ' ;
use EasyRSA Downloader ;
$ dnl = new Downloader ([
' archive ' => ' ./easy-rsa.tar.gz ' ,
' scripts ' => ' ./easy-rsa ' ,
]);
$ dnl -> getEasyRSA ();
El resultado de este script estará en la carpeta easy-rsa
.
require_once __DIR__ . ' /../vendor/autoload.php ' ;
use Dotenv Dotenv ;
use EasyRSA Commands ;
// Load dotenv?
if ( file_exists ( __DIR__ . ' /../vars.example ' )) {
Dotenv:: createImmutable ( __DIR__ . ' /../ ' , ' vars.example ' )-> load ();
}
$ cmd = new Commands ([
' scripts ' => ' ./easy-rsa ' ,
' certs ' => ' ./easy-rsa-certs ' ,
]);
$ cmd -> initPKI ();
$ cmd -> buildCA ( true );
$ cmd -> genDH ();
$ cmd -> buildServerFull ( ' server ' , true );
$ cmd -> buildClientFull ( ' client1 ' , true );
$ cmd -> buildClientFull ( ' client2 ' , true );
El resultado de este script estará en la carpeta easy-rsa-certs
.
Método | Descripción |
---|---|
getContent(cadena $nombre de archivo) | Mostrar el contenido de cualquier certificado disponible en la carpeta "certs" |
inicioPKI() | Crear una instancia de infraestructura de clave pública (PKI) |
buildCA(bool $nopass = falso) | Autoridad de certificación de compilación (CA) |
genDH() | Generar certificado Diffie-Hellman (DH) |
genReq() | Generar solicitud de certificado |
signReqClient(cadena $nombre de archivo) | Firmar solicitud de certificado de cliente |
signReqServer(cadena $nombre de archivo) | Firmar solicitud de certificado de servidor |
buildClientFull(cadena $nombre, bool $nopass = false) | Construir clave pública y privada del cliente. |
buildServerFull(cadena $nombre, bool $nopass = false) | Construya la clave pública y privada del servidor |
revocar(cadena $nombre de archivo) | Revocar certificado |
genCRL() | Generar lista de revocación de certificados (CRL) |
actualizarDB() | Actualizar base de datos de certificados |
showCert(cadena $nombre de archivo) | Mostrar información sobre el certificado |
showReq(cadena $nombre de archivo) | Mostrar información sobre la solicitud |
importReq(cadena $nombre de archivo) | Solicitud de importación |
exportP7(cadena $nombre de archivo) | Exportar archivo en formato de Estándares de criptografía de clave pública (PKCS) v7 (P7) |
exportP12(cadena $nombre de archivo) | Exportar archivo en formato de Estándares de criptografía de clave pública (PKCS) v12 (P12) |
setRSAPass(cadena $nombre de archivo) | Establecer contraseña en formato Rivest–Shamir–Adleman (RSA) |
setECPass(cadena $nombre de archivo) | Establecer contraseña en formato de curva elíptica (EC) |
También puede leer el contenido del certificado generado mediante el método getConfig($filename)
:
<?php
require_once __DIR__ . ' /../vendor/autoload.php ' ;
use EasyRSA Commands ;
$ cmd = new Commands ([
' scripts ' => ' ./easy-rsa ' ,
' certs ' => ' ./easy-rsa-certs ' ,
]);
$ file = $ cmd -> getContent ( ' ca.crt ' );
echo " $ file n" ;
$ file = $ cmd -> getContent ( ' server.crt ' );
echo " $ file n" ;
$ file = $ cmd -> getContent ( ' server.key ' );
echo " $ file n" ;
Puede configurar estas variables a través del entorno en el sistema host o con la ayuda de la biblioteca vlucas/phpdotenv o de cualquier otra forma que desee.
EASYRSA_DN = " cn_only "
# EASYRSA_DN="org"
EASYRSA_REQ_COUNTRY = " DE "
EASYRSA_REQ_PROVINCE = " California "
EASYRSA_REQ_CITY = " San Francisco "
EASYRSA_REQ_ORG = " Copyleft Certificate Co "
EASYRSA_REQ_EMAIL = " [email protected] "
EASYRSA_REQ_OU = " My Organizational Unit "
EASYRSA_REQ_CN = " ChangeMe "
EASYRSA_KEY_SIZE = 2048
EASYRSA_ALGO = rsa
EASYRSA_CA_EXPIRE = 3650
EASYRSA_CERT_EXPIRE = 3650
EASYRSA_DIGEST = " sha256 "
Aquí se puede encontrar un ejemplo de configuración de variables de entorno que se deben utilizar en la etapa de creación del certificado.
El proveedor de servicios del paquete registrará automáticamente su proveedor de servicios.
Publique el archivo de configuración easy-rsa.php
:
php artisan vendor:publish --provider= " EasyRSALaravelServiceProvider "
Después de publicar el archivo de configuración como se sugirió anteriormente, puede configurar la biblioteca agregando lo siguiente al archivo .env
de su aplicación (con los valores apropiados):
EASYRSA_WORKER =default
EASYRSA_ARCHIVE =./easy-rsa.tar.gz
EASYRSA_SCRIPTS =./easy-rsa
EASYRSA_CERTS =./easy-rsa-certs
Si trabaja con Lumen, registre el proveedor de servicios y la configuración en bootstrap/app.php
:
$ app -> register ( EasyRSA Laravel ServiceProvider::class);
$ app -> configure ( ' easy-rsa ' );
Copie manualmente el archivo de configuración a su aplicación.
Esta biblioteca se puede probar de varias maneras diferentes.
composer test:lint
composer test:types
composer test:unit
o solo en un comando
composer test