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