易拉罐/easyrsa-php

在您的应用程序中使用官方EasyRSA脚本集合的简单方法

资助包维护!
Patreon

1.0.1 2020-07-29 04:48 UTC

This package is not auto-updated.

Last update: 2024-09-25 08:52:16 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

链接