setasign / setapdf-signer-addon-aws-kms
SetaPDF-Signer 组件的签名模块,用于 AWS 密钥管理服务。
v1.1.1
2023-03-16 14:07 UTC
Requires
- php: >=5.6
- aws/aws-sdk-php: ^3.171
- setasign/setapdf-signer: ^2.40
Requires (Dev)
- phpseclib/phpseclib: ^2.0
README
此包提供了一个用于 SetaPDF-Signer 组件的模块,允许您使用 AWS Key Management Service 以纯 PHP 签署 PDF 文档。
要求
此包使用官方的 AWS SDK for PHP 版本 3 与 KMS 通信。您需要适当的凭证。
您还需要与存储的密钥相关的 X.509 证书。为了测试目的创建自签名证书或为所选证书颁发机构创建 CSR,您可以使用我们准备的工具 此处。
此包是在 PHP >= 5.6 上开发和测试的。可以在 SetaPDF-Signer 组件中找到组件的要求 此处。
安装
将以下内容添加到您的 composer.json 中
{ "require": { "setasign/setapdf-signer-addon-aws-kms": "^1.0" }, "repositories": [ { "type": "composer", "url": "https://www.setasign.com/downloads/" } ] }
然后执行 composer update
。您需要定义 repository
以评估对 SetaPDF-Signer 组件的依赖(有关更多详细信息,请参阅 此处)。
Setasign 存储库需要认证数据:您可以使用您在 setasign.com 的账户凭证,您的许可证分配给该账户。在 composer 运行过程中会要求您提供这些凭证。有关使用 composer 进行认证的更多选项,请参阅 此处。
您必须在 环境变量 中定义您的 AWS KMS 凭证。
用法
本包中所有类都位于命名空间 setasign\SetaPDF\Signer\Module\AwsKms
中。
模块类
这是主签名模块,可以与 SetaPDF-Signer 组件一起使用。
一个简单的完整签名过程如下所示
$kmsClient = new Aws\Kms\KmsClient\KmsClient([ 'region' => $region, 'version' => $version, ]); $awsKmsModule = new setasign\SetaPDF\Signer\Module\AwsKms\Module($keyId, $kmsClient); $cert = file_get_contents('your-cert.crt'); $awsKmsModule->setCertificate($cert); $awsKmsModule->setSignatureAlgorithm($algorithm); // the file to sign $fileToSign = __DIR__ . '/Laboratory-Report.pdf'; // create a writer instance $writer = new SetaPDF_Core_Writer_File('signed.pdf'); // create the document instance $document = SetaPDF_Core_Document::loadByFilename($fileToSign, $writer); // create the signer instance $signer = new SetaPDF_Signer($document); $signer->sign($awsKmsModule);
请确保传递与 KMS 中密钥配置匹配的 $algorithm
值。
许可证
此包是开源软件,受 MIT 许可证 许可。