sdekkers/easyrsa-php
Composer 安装命令:
composer require sdekkers/easyrsa-php
包简介
An easy way to use the official EasyRSA collection of shell scripts in your application
README 文档
README
EasyRSA wrapper for PHP
An easy way to use the official EasyRSA collection of shell scripts in your application.
composer require evilfreelancer/easyrsa-php
By the way, EasyRSA library support Laravel and Lumen frameworks, details here.
How to use
More examples you can find here.
Download the latest release of EasyRSA
Before you start use this script need to download the easy-rsa package.
require_once __DIR__ . '/../vendor/autoload.php'; use EasyRSA\Downloader; $dnl = new Downloader([ 'archive' => './easy-rsa.tar.gz', 'scripts' => './easy-rsa', ]); $dnl->getEasyRSA();
Result of this script will be in easy-rsa folder.
Generate certificates
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);
Result of this script will be in easy-rsa-certs folder.
List of all available commands
| Method | Description |
|---|---|
| getContent(string $filename) | Show content of any certificate available in "certs" folder |
| initPKI() | Instantiate Public Key Infrastructure (PKI) |
| buildCA(bool $nopass = false) | Build Certificate Authority (CA) |
| genDH() | Generate Diffie-Hellman certificate (DH) |
| genReq() | Generate request for certificate |
| signReqClient(string $filename) | Sign request for client certificate |
| signReqServer(string $filename) | Sign request for server certificate |
| buildClientFull(string $name, bool $nopass = false) | Build public and private key of client |
| buildServerFull(string $name, bool $nopass = false) | Build public and private key of server |
| revoke(string $filename) | Revoke certificate |
| genCRL() | Generate Certificate Revocation List (CRL) |
| updateDB() | Update certificates database |
| showCert(string $filename) | Display information about certificate |
| showReq(string $filename) | Display information about request |
| importReq(string $filename) | Import request |
| exportP7(string $filename) | Export file in format of Public-Key Cryptography Standards (PKCS) v7 (P7) |
| exportP12(string $filename) | Export file in format of Public-Key Cryptography Standards (PKCS) v12 (P12) |
| setRSAPass(string $filename) | Set password in Rivest–Shamir–Adleman (RSA) format |
| setECPass(string $filename) | Set password in Elliptic Curve (EC) format |
You also can read content of generated certificate via getConfig($filename) method:
<?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";
Environment variables
You can set these variables via environment on host system or with help of vlucas/phpdotenv library or via any other way which you like.
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"
Example of environment variables configuration which should be used on certificate build stage can be fond here.
Frameworks support
Laravel
The package's service provider will automatically register its service provider.
Publish the easy-rsa.php configuration file:
php artisan vendor:publish --provider="EasyRSA\Laravel\ServiceProvider"
Alternative configuration method via .env file
After you publish the configuration file as suggested above, you may configure library
by adding the following to your application's .env file (with appropriate values):
EASYRSA_WORKER=default EASYRSA_ARCHIVE=./easy-rsa.tar.gz EASYRSA_SCRIPTS=./easy-rsa EASYRSA_CERTS=./easy-rsa-certs
Lumen
If you work with Lumen, please register the service provider and configuration in bootstrap/app.php:
$app->register(EasyRSA\Laravel\ServiceProvider::class); $app->configure('easy-rsa');
Manually copy the configuration file to your application.
Testing
This library can tested in multiple different ways
composer test:lint composer test:types composer test:unit
or just in one command
composer test
Links
sdekkers/easyrsa-php 适用场景与选型建议
sdekkers/easyrsa-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.14k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 07 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 sdekkers/easyrsa-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sdekkers/easyrsa-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 2.14k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-07-14