evilfreelancer / easyrsa-php
在您的应用程序中轻松使用官方 EasyRSA 脚本集合的方式
1.0.1
2020-07-29 04:48 UTC
Requires
- php: ^7.2
- ext-curl: *
- ext-json: *
- splitbrain/php-archive: ^1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- larapack/dd: ^1.1
- limedeck/phpunit-detailed-printer: ^5.0
- orchestra/testbench: ^4.0|^5.0
- phpunit/phpunit: ^8.0
- vlucas/phpdotenv: ^4.0
Suggests
- vlucas/phpdotenv: ^4.0
README
PHP 的 EasyRSA 包装器
在您的应用程序中轻松使用 官方 EasyRSA 脚本集合的方式。
composer require evilfreelancer/easyrsa-php
顺便说一句,EasyRSA 库支持 Laravel 和 Lumen 框架,详细信息 这里。
如何使用
更多示例可以在 这里 找到。
下载 EasyRSA 最新版本
在开始使用此脚本之前,需要下载 easy-rsa 包。
require_once __DIR__ . '/../vendor/autoload.php'; use EasyRSA\Downloader; $dnl = new Downloader([ 'archive' => './easy-rsa.tar.gz', 'scripts' => './easy-rsa', ]); $dnl->getEasyRSA();
此脚本的结果将在 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);
此脚本的结果将在 easy-rsa-certs
文件夹中。
所有可用命令列表
您还可以通过 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";
环境变量
您可以通过主机系统上的环境设置这些变量,或使用 vlucas/phpdotenv 库,或通过您喜欢的任何其他方式。
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="me@example.net" 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"
证书构建阶段应使用的环境变量配置示例可以在 这里 找到。
框架支持
Laravel
包的服务提供程序将自动注册其服务提供程序。
发布 easy-rsa.php
配置文件
php artisan vendor:publish --provider="EasyRSA\Laravel\ServiceProvider"
通过 .env 文件的其他配置方法
如上所述发布配置文件后,您可以通过将以下内容添加到应用程序的 .env
文件(使用适当的值)来配置库
EASYRSA_WORKER=default EASYRSA_ARCHIVE=./easy-rsa.tar.gz EASYRSA_SCRIPTS=./easy-rsa EASYRSA_CERTS=./easy-rsa-certs
Lumen
如果您使用 Lumen,请在 bootstrap/app.php
中注册服务提供程序和配置
$app->register(EasyRSA\Laravel\ServiceProvider::class); $app->configure('easy-rsa');
手动将配置文件复制到您的应用程序。
测试
此库可以通过多种不同的方式进行测试
composer test:lint composer test:types composer test:unit
或只需一个命令即可
composer test