protonlabs/x509-sign

此包最新版本(1.0.0)没有提供许可证信息。

签名 ASN1 字符串

1.0.0 2021-06-29 13:19 UTC

README

一个简单的端点用于签名 X509 证书。

使用方法

通过 HTTP

在 web 服务器上暴露 index.php

获取签名服务器公钥

POST /
{
  "publicKey": {}
}

或指定格式

POST /
{
  "publicKey": {"format": "PSS"}
}

请求签名

POST /
{
  "signedCertificate": {
    "certificate": "-----BEGIN...",
    "clientPublicKey": "-----BEGIN..."
  }
}

您可以分组请求并获取聚合的结果

POST /
{
  "publicKey": {},
  "signedCertificate": {
    "certificate": "-----BEGIN...",
    "clientPublicKey": "-----BEGIN..."
  }
}

结果将是以下 JSON 输出

{
  "publicKey": {
    "success": true,
    "result": "-----BEGIN..."
  },
  "signedCertificate": {
    "success": true,
    "result": "-----BEGIN..."
  }
}

包括服务器签名公钥字符串和已签名的证书。

作为服务

使用 Issuer::issue() 在 PHP 应用程序中签名证书。

use Proton\X509Sign\Issuer;
use phpseclib3\Crypt\RSA\PrivateKey;
use phpseclib3\Crypt\RSA\PublicKey;

$issuer = new Issuer();
$issuer->issue(
    PrivateKey::load('-----BEGIN...'),
    PublicKey::load('-----BEGIN...'),
    ['commonName' => 'foo'],
    ['commonName' => 'bar'],
    '9256',
);

配置

定义环境变量以配置您的服务器

  • SIGNATURE_PRIVATE_KEY 私有签名密钥的 PKCS1 字符串。

  • SIGNATURE_PRIVATE_KEY_PASSPHRASE 私钥的密码或短语。

  • EXTENSIONS 要支持的 X509 扩展的 JSON 表示形式。