jdmaymeow/php-encrypt

该软件包已被废弃,不再维护。作者建议使用maymeow/php-encrypt软件包。

PHP 认证机构管理脚本

安装: 13

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:php-script

v0.6.4 2016-12-12 09:01 UTC

This package is not auto-updated.

Last update: 2022-02-01 13:03:42 UTC


README

Build Status

认证机构管理脚本

安装

composer create-project --prefer-dist jdmaymeow/php-encrypt php-encrypt

先决条件

  • PHP 带有 openssl 扩展(PHP 5.5 及更高版本)
  • PHP mb-string 扩展
  • Composer 用于安装

从 GitHub 镜像安装

从公共 GitHub 仓库安装

git clone https://github.com/jdmaymeow/php-encrypt
cd php-encrypt
composer install

使用 Composer(推荐)

如果您熟悉 composer,您也可以使用 composer 安装最新稳定版本。

composer create-project --prefer-dist jdmaymeow/php-encrypt [app-name]

有多个版本,您必须是开发者。

配置

默认配置文件位于

config/encrypt.yml

每个证书类型的默认配置看起来像

certificates:
  ca:
    daysvalid: 7000
    x509_extensions: v3_ca
  intermediate:
    daysvalid: 3650
    x509_extensions: v3_intermediate_ca

如果您想添加其他证书类型的新配置

使用方法

使用此脚本,您可以签署 CA、中间 CA、用户和服务器证书。在您这样做之前,您需要创建您的 CA 和中间 CA 证书

创建 CA

创建 CA 的示例

php index.php bf:ca DesiredNameCa --CN="My CA" --C=SK --O="My Organization ltd."

创建中间 CA

要签署证书,您需要中间 CA 证书。以下是一个示例

php index.php bf:intermediatesign DesiredNameCa --CN="My Intermediate CA" --C=SK --O="My Organization ltd." --CA=DesiredNameCa
  • DesiredNameCa 必须与您的认证机构名称相同。
  • --ca=... 中,您将指定要用于签署证书的 CA,它与 DesiredNameCa 相同

签署证书

用户证书

php index.php bf:usersign jane-doe --CN="Jane Doe" --C=SK --E=jane@doe.local --CA=MyCA

脚本将使用 MyCa 文件夹中的 intermediate.cert 和 key。

如果您需要覆盖证书有效期,可以使用选项 --validity 并添加您的长度(以天为单位)。示例

php index.php bf:usersign jane-doe --CN="Jane Doe" --C=SK --E=jane@doe.local --validity=30 --CA=MyCA

服务器证书

在您签署服务器证书之前,请转到 config/intermediate.cnf 并将以下内容添加到文件末尾

[ alt_names ]
# To add domaind add DNS.1, DNS.2 ...
# for multi domain add DNS.1=domain.tld and DNS.2=*.domain.tld
DNS.1 = www.somewhere.com

# If you want add IP addresses add IP.1, Ip.2 ...
# IP.1=127.0.0.1

现在您可以签署证书了

php index.php bf:serversign my-server --CN="www.domain.tld" --C=SK --CA=MyCA

以天为单位覆盖证书有效期(与用户证书相同)

php index.php bf:serversign my-server --CN="www.domain.tld" --C=SK --validity=30 --CA=MyCA

作为 CLI 在系统中全局运行

如果您想在系统中全局运行您的脚本,则重要地更改配置以读取当前工作目录而不是安装脚本的父目录。转到 config/app.php 并更改以下行,如示例所示

define('WWW_ROOT', ROOT . DS . 'webroot' . DS);

//change to
define('WWW_ROOT', CLI_ROOT . DS . 'webroot' . DS);

脚本现在将在您的工作目录中创建 webroot 文件夹和所有证书。

Windows

在Windows上运行脚本,请创建一个包含php-encrypt.bat的文件夹路径,内容如下:

@php "%~dp0path-to-php-encrypt-folder\index.php" %*

Linux

待补充

备份

您需要备份存储所有证书和配置文件 *.cnf encrypt.ymlwebroot文件夹,如果您已经修改过这些文件。

贡献

  1. 将其分支出来!
  2. 创建您的功能分支: git checkout -b my-new-feature
  3. 提交您的更改: git commit -am '添加某些功能'
  4. 推送到分支: git push origin my-new-feature
  5. 提交拉取请求 :D

历史

待补充:编写历史

鸣谢

  • May Meow
  • GitlabCafe上的BlackFriday社区

许可

MIT