Cara mudah untuk menggunakan kumpulan skrip shell EasyRSA resmi di aplikasi Anda.
composer require evilfreelancer/easyrsa-php
Omong-omong, perpustakaan EasyRSA mendukung kerangka kerja Laravel dan Lumen, detailnya di sini.
Contoh lainnya dapat Anda temukan di sini.
Sebelum Anda mulai menggunakan skrip ini perlu mengunduh paket easy-rsa.
require_once __DIR__ . ' /../vendor/autoload.php ' ;
use EasyRSA Downloader ;
$ dnl = new Downloader ([
' archive ' => ' ./easy-rsa.tar.gz ' ,
' scripts ' => ' ./easy-rsa ' ,
]);
$ dnl -> getEasyRSA (); Hasil skrip ini akan berada di folder 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 ); Hasil skrip ini akan berada di folder easy-rsa-certs .
| Metode | Keterangan |
|---|---|
| getContent(string $namafile) | Tampilkan konten sertifikat apa pun yang tersedia di folder "sertifikat". |
| initPKI() | Membuat Infrastruktur Kunci Publik (PKI) |
| buildCA(bool $nopass = salah) | Bangun Otoritas Sertifikat (CA) |
| genDH() | Hasilkan sertifikat Diffie-Hellman (DH) |
| genReq() | Hasilkan permintaan sertifikat |
| signReqClient(string $namafile) | Tanda tangani permintaan sertifikat klien |
| signReqServer(string $nama file) | Tanda tangani permintaan sertifikat server |
| buildClientFull(string $nama, bool $nopass = false) | Bangun kunci publik dan pribadi klien |
| buildServerFull(string $nama, bool $nopass = false) | Bangun kunci publik dan pribadi server |
| mencabut(string $namafile) | Cabut sertifikat |
| genCRL() | Buat Daftar Pencabutan Sertifikat (CRL) |
| pembaruanDB() | Perbarui basis data sertifikat |
| showCert(string $namafile) | Menampilkan informasi tentang sertifikat |
| showReq(string $namafile) | Menampilkan informasi tentang permintaan |
| importReq(string $namafile) | Permintaan impor |
| eksporP7(string $nama file) | Ekspor file dalam format Standar Kriptografi Kunci Publik (PKCS) v7 (P7) |
| eksporP12(string $nama file) | Ekspor file dalam format Standar Kriptografi Kunci Publik (PKCS) v12 (P12) |
| setRSAPass(string $namafile) | Tetapkan kata sandi dalam format Rivest–Shamir–Adleman (RSA). |
| setECPass(string $namafile) | Tetapkan kata sandi dalam format Elliptic Curve (EC). |
Anda juga dapat membaca konten sertifikat yang dihasilkan melalui metode 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" ;Anda dapat mengatur variabel-variabel ini melalui lingkungan pada sistem host atau dengan bantuan perpustakaan vlucas/phpdotenv atau melalui cara lain yang Anda suka.
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 "Contoh konfigurasi variabel lingkungan yang harus digunakan pada tahap pembuatan sertifikat dapat dilihat di sini.
Penyedia layanan paket akan secara otomatis mendaftarkan penyedia layanannya.
Publikasikan file konfigurasi easy-rsa.php :
php artisan vendor:publish --provider= " EasyRSALaravelServiceProvider " Setelah Anda mempublikasikan file konfigurasi seperti yang disarankan di atas, Anda dapat mengonfigurasi perpustakaan dengan menambahkan yang berikut ini ke file .env aplikasi Anda (dengan nilai yang sesuai):
EASYRSA_WORKER =default
EASYRSA_ARCHIVE =./easy-rsa.tar.gz
EASYRSA_SCRIPTS =./easy-rsa
EASYRSA_CERTS =./easy-rsa-certs Jika Anda bekerja dengan Lumen, silakan daftarkan penyedia layanan dan konfigurasinya di bootstrap/app.php :
$ app -> register ( EasyRSA Laravel ServiceProvider::class);
$ app -> configure ( ' easy-rsa ' );Salin file konfigurasi ke aplikasi Anda secara manual.
Perpustakaan ini dapat diuji dengan berbagai cara berbeda
composer test:lint
composer test:types
composer test:unitatau hanya dalam satu perintah
composer test