setasign/setapdf-signer-addon-aws-kms

SetaPDF-Signer 组件的签名模块,用于 AWS 密钥管理服务。

v1.1.1 2023-03-16 14:07 UTC

This package is auto-updated.

Last update: 2024-09-06 14:13:07 UTC


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 许可证 许可。