easyrsa php
1.0.0
在应用程序中使用官方 EasyRSA shell 脚本集合的简单方法。
composer require evilfreelancer/easyrsa-php
顺便说一句,EasyRSA 库支持 Laravel 和 Lumen 框架,详细信息请参见此处。
您可以在这里找到更多示例。
在开始使用此脚本之前需要下载 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
文件夹中。
方法 | 描述 |
---|---|
获取内容(字符串$文件名) | 显示“certs”文件夹中可用的任何证书的内容 |
初始化PKI() | 实例化公钥基础设施 (PKI) |
buildCA(布尔 $nopass = false) | 构建证书颁发机构 (CA) |
genDH() | 生成 Diffie-Hellman 证书 (DH) |
genReq() | 生成证书请求 |
SignReqClient(字符串$文件名) | 签署客户端证书请求 |
SignReqServer(字符串$文件名) | 签署服务器证书请求 |
buildClientFull(字符串 $name, 布尔 $nopass = false) | 建立客户端的公钥和私钥 |
buildServerFull(字符串 $name, 布尔 $nopass = false) | 建立服务器的公钥和私钥 |
撤销(字符串$文件名) | 吊销证书 |
生成CRL() | 生成证书吊销列表 (CRL) |
更新数据库() | 更新证书数据库 |
showCert(字符串$文件名) | 显示有关证书的信息 |
showReq(字符串$文件名) | 显示有关请求的信息 |
importReq(字符串$文件名) | 导入请求 |
导出P7(字符串$文件名) | 以公钥加密标准 (PKCS) v7 (P7) 格式导出文件 |
导出P12(字符串$文件名) | 以公钥加密标准 (PKCS) v12 (P12) 格式导出文件 |
setRSAPass(字符串$文件名) | 以 Rivest–Shamir–Adleman (RSA) 格式设置密码 |
setECPass(字符串$文件名) | 以椭圆曲线 (EC) 格式设置密码 |
您还可以通过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 = " [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 "
应该在证书构建阶段使用的环境变量配置示例可以在这里找到。
包的服务提供者将自动注册其服务提供者。
发布easy-rsa.php
配置文件:
php artisan vendor:publish --provider= " EasyRSALaravelServiceProvider "
按照上面的建议发布配置文件后,您可以通过将以下内容添加到应用程序的.env
文件(使用适当的值)来配置库:
EASYRSA_WORKER =default
EASYRSA_ARCHIVE =./easy-rsa.tar.gz
EASYRSA_SCRIPTS =./easy-rsa
EASYRSA_CERTS =./easy-rsa-certs
如果您使用 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