gaesi / cert
Gaesi Cert 库
v0.1.14
2020-12-01 18:40 UTC
Requires
- php: ^7.2.5
- gaesi/validator: ^0.1
- phpseclib/phpseclib: ~2.0
Requires (Dev)
- phpunit/phpunit: ^8.5
README
一个用于处理证书的PHP库。
- ICP-Brasil 支持
- SSL 证书解析器
- 验证证书链
- 验证 ICP-Brasil 证书链
用法
加载 SSL 证书 ICPBrasil
use Gaesi\Cert\IcpBrasil\IcpBrasilCertificate; $icp = new IcpBrasilCertificate(); $icp->parseSSL(); echo $icp->cnpj; // print the cnpj echo $icp->name; // print the name of the CommonName echo $icp->oidExists('2.16.76.1.3.3'); // true
从文本或文件加载证书 ICPBrasil
use Gaesi\Cert\IcpBrasil\IcpBrasilCertificate; string $cert = "-----BEGIN CERTIFICATE-----MIIG4...XLFw==-----END CERTIFICATE-----"; $icp = new IcpBrasilCertificate(); $icp->parseX509($cert); echo $icp->cnpj; // print the cnpj
验证证书链
加载并验证证书链
use Gaesi\Cert\IcpBrasil\IcpBrasilCertificate; $ca = new CALoader(); $ca->addRepositoryPath('path/to/CAs/repository'); $icp = new IcpBrasilCertificate(); $icp->parseSSL(); $icp->setChain($ca->getCAs()); echo 'Valid? :'. ($icp->validateChain())? 'true' : 'false';
验证证书链是否为 ICP-Basil 链
use Gaesi\Cert\IcpBrasil\IcpBrasilCertificate; $icp = new IcpBrasilCertificate(); $icp->parseSSL(); // Include the Intermediates Certs to the Chain $ca = new CALoader(); $ca->addCerts( $intermediatesCert ); $icp->setChain($ca->getCAs()); echo 'Is IcpBrasil? :'. ($icp->validateICPBrasilChain())? 'true' : 'false';
ICP-Brasil CAs 根
库仅在目录 src/Resources/icpBrasil/Roots 中存储默认的 ICP-Brasil CA 根,验证链需要加载所有证书链。
参考文献
https://www.gov.br/iti/pt-br/assuntos/repositorio/repositorio-ac-raiz