jdmaymeow / php-encrypt
v0.6.4
2016-12-12 09:01 UTC
Requires
- symfony/console: ^3.1
- symfony/yaml: ^3.1
This package is not auto-updated.
Last update: 2022-02-01 13:03:42 UTC
README
认证机构管理脚本
安装
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.yml
的webroot
文件夹,如果您已经修改过这些文件。
贡献
- 将其分支出来!
- 创建您的功能分支:
git checkout -b my-new-feature
- 提交您的更改:
git commit -am '添加某些功能'
- 推送到分支:
git push origin my-new-feature
- 提交拉取请求 :D
历史
待补充:编写历史
鸣谢
- May Meow
- GitlabCafe上的BlackFriday社区
许可
MIT