easyrsa php
1.0.0
アプリケーションでシェル スクリプトの公式 EasyRSA コレクションを使用する簡単な方法。
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
フォルダーに保存されます。
方法 | 説明 |
---|---|
getContent(string $ファイル名) | 「certs」フォルダーで利用可能な証明書の内容を表示します |
initPKI() | 公開鍵インフラストラクチャー (PKI) をインスタンス化する |
buildCA(bool $nopass = false) | 認証局 (CA) を構築する |
genDH() | Diffie-Hellman 証明書 (DH) を生成する |
genReq() | 証明書のリクエストを生成する |
SignReqClient(string $filename) | クライアント証明書の署名リクエスト |
SignReqServer(string $filename) | サーバー証明書の署名リクエスト |
buildClientFull(string $name, bool $nopass = false) | クライアントの公開鍵と秘密鍵を構築する |
buildServerFull(string $name, bool $nopass = false) | サーバーの公開鍵と秘密鍵を構築する |
取り消し(文字列$ファイル名) | 証明書を取り消す |
genCRL() | 証明書失効リスト (CRL) の生成 |
updateDB() | 証明書データベースを更新する |
showCert(string $filename) | 証明書に関する情報を表示する |
showReq(string $ファイル名) | リクエストに関する情報を表示する |
importReq(string $ファイル名) | インポートリクエスト |
importP7(string $filename) | Public-Key Cryptography Standards (PKCS) v7 (P7) の形式でファイルをエクスポートします。 |
エクスポートP12(文字列$ファイル名) | 公開キー暗号化標準 (PKCS) v12 (P12) の形式でファイルをエクスポートします。 |
setRSAPass(string $filename) | Rivest-Shamir-Adleman (RSA) 形式でパスワードを設定します |
setECPass(string $filename) | 楕円曲線 (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
または 1 つのコマンドだけで
composer test