วิธีง่ายๆ ในการใช้คอลเลกชันเชลล์สคริปต์ 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(สตริง $ชื่อไฟล์) | แสดงเนื้อหาของใบรับรองที่มีอยู่ในโฟลเดอร์ "certs" |
initPKI() | สร้างอินสแตนซ์โครงสร้างพื้นฐานคีย์สาธารณะ (PKI) |
buildCA(บูล $nopass = false) | สร้างผู้ออกใบรับรอง (CA) |
เจนดีเอช() | สร้างใบรับรอง Diffie-Hellman (DH) |
genReq() | สร้างคำขอใบรับรอง |
signReqClient(สตริง $ชื่อไฟล์) | ลงนามขอใบรับรองไคลเอ็นต์ |
signReqServer(สตริง $ชื่อไฟล์) | ลงนามขอใบรับรองเซิร์ฟเวอร์ |
buildClientFull(สตริง $name, บูล $nopass = false) | สร้างคีย์สาธารณะและคีย์ส่วนตัวของลูกค้า |
buildServerFull(สตริง $name, บูล $nopass = false) | สร้างคีย์สาธารณะและคีย์ส่วนตัวของเซิร์ฟเวอร์ |
เพิกถอน (สตริง $ ชื่อไฟล์) | เพิกถอนใบรับรอง |
genCRL() | สร้างรายการเพิกถอนใบรับรอง (CRL) |
อัพเดตดีบี() | อัพเดตฐานข้อมูลใบรับรอง |
showCert(สตริง $ชื่อไฟล์) | แสดงข้อมูลเกี่ยวกับใบรับรอง |
showReq(สตริง $ชื่อไฟล์) | แสดงข้อมูลเกี่ยวกับคำขอ |
importReq(สตริง $ชื่อไฟล์) | คำขอนำเข้า |
ExportP7(สตริง $ชื่อไฟล์) | ส่งออกไฟล์ในรูปแบบของ Public-Key Cryptography Standards (PKCS) v7 (P7) |
ExportP12(สตริง $ชื่อไฟล์) | ส่งออกไฟล์ในรูปแบบของ Public-Key Cryptography Standards (PKCS) v12 (P12) |
setRSAPass(สตริง $ชื่อไฟล์) | ตั้งรหัสผ่านในรูปแบบ Rivest–Shamir–Adleman (RSA) |
setECPass(สตริง $ชื่อไฟล์) | ตั้งรหัสผ่านในรูปแบบ Elliptic Curve (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