evilfreelancer/easyrsa-php

在您的应用程序中轻松使用官方 EasyRSA 脚本集合的方式

1.0.1 2020-07-29 04:48 UTC

This package is auto-updated.

Last update: 2024-08-29 04:42:38 UTC


README

Latest Stable Version Total Downloads Build Status Code Coverage Code Climate Scrutinizer Code Quality License

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

链接