1.0.2 • Published 6 years ago
php-letsencrypt v1.0.2
php_letsencrypt
PHP SSL for letsencrypt.com acme v02
Let’s Encrypt is a free, automated, and open certificate authority brought to you by the non-profit Internet Security Research Group (ISRG).
Only PHP client is provided here.
Supporting RSA ECC
Travis CI
codecov
Packagist
Github
Installation
Use Composer to install the library.
$ composer require yakeing/php_letsencrypt
Initialization parameter
- Sample:
$le = new letsencrypt();
$option = array();
$option['accountKey'] = '-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----';
Get Directory
- Sample:
echo $le->Directory();
New Nonce
- Sample:
echo $le->NewNonce();
New User Registration
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$userinfo = array('mailto:yakeing@github.com');
$le->NewAccount($accountKey, $userinfo);
$option['kid'] = $le->body['kid'];
New Order
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$domain = 'example.com';
$kid = $option['kid']; //12345
$type = 'dns';
$le->NewOrder($accountKey, $domain, $kid, $type);
$option['authorizations'] = $le->body['authorizations'][0];
$option['finalize'] = $le->body['finalize'];
Get challenges
- Sample:
$jsonAuthz = file_get_contents($option['authorizations']); //array(.....)
$authz = json_decode($jsonAuthz, true);
foreach ($authz['challenges'] as $value) {
if ('http-01' == $value['type']) {
//$option['status'] = $value['status']; // valid
$option['url'] = $value['url'];
$option['token'] = $value['token'];
}
}
Get Dns Txt
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$token = $option['token']; //gDhhgh5Sdgf......fGDB0ceWadfg
$ret = $le->GetDnsTxt($accountKey, $token);
// FrZWluZ0BnaXR......odWIuY29tMFkwE
Challenge
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$kid = $option['kid']; //12345
$url = $option['url']; //https://~.api.letsencrypt.org/acme/authz-v3/*****
$token = $option['token']; //gDhhgh5Sdgf......fGDB0ceWadfg
$le->Challenge($accountKey, $kid, $url, $token);
//$le->body['status'] == 'valid'
Application for certificate issuance
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$kid = $option['kid']; //12345
$finalizeUrl = $option['finalize']; //https://~.api.letsencrypt.org/acme/finalize/***/***';
$csr = '-----BEGIN CERTIFICATE-----\nMIIEjjCCA3agAw....NjDNFu0Qg==-----END CERTIFICATE-----';
$outCert = true;
$le->GetCert($accountKey, $kid, $finalizeUrl, $csr, $outCert);
$Cert = $le->body; //certificate
Certificate revocation
- Sample:
$cerKey = '-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----';
$Cert = '-----BEGIN CERTIFICATE-----\nMIIEj0CCA2agAw....Hgd7YGhghE9gj\n==-----END CERTIFICATE-----';
$reason = 0;
$le->RevokeCert($cerKey, $cer, $reason);
Domain name deauthorization
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$kid = 'k6789';
$authKid = 'd12345';
$le->AuthzDeactivate($accountKey, $kid, $authKid);
Change account communication key
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$kid = $option['kid']; //12345
$newAccountKey = '-----BEGIN PUBLIC KEY-----\nOIYGRjp8....ATy3ggQiyA\n-----END PUBLIC KEY----';;
$le->KeyChange($accountKey, $kid, $newAccountKey);
Account deactivation
- Sample:
$accountKey = $option['accountKey']; //-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----
$kid = $option['kid']; //12345
$le->DeactivatedAccount($accountKey, $kid);
Donate
If you've got value from any of the content which I have created, then I would very much appreciate your support by payment donate.
1FYbZECgs3V3zRx6P7yAu2nCDXP2DHpwt8
Alipay
Author
weibo: yakeing
twitter: yakeing