我想用PHP生成客户端密钥。当生成客户端密钥时,它应该给我密钥的到期日期。
root @ zohaib-VirtualBox:/ etc / openvpn / easy-rsa#。/ build -key client1
生成2048位RSA私钥........................................ ..................... +++ .......................... .. +++
将新私钥写入' client1.key' 您将被要求输入将包含在您的证书申请中的信息。您要输入的是所谓的专有名称或DN。有很多字段但你可以留空一些字段对于某些字段会有一个默认值,
如果输入'。',该字段将留空。 国家名称(2个字母代码)[GB]:
州或省名(全名)[伦敦]:
地点名称(例如,城市)[伦敦]:
组织名称(例如公司)[组织]:
组织单位名称(例如,部分)[]:
通用名称(例如,您的姓名或服务器的主机名)[client1]:
名称[OrgServer]:
电子邮件地址[admin@org.com]:
请输入以下'额外'要与证书请求一起发送的属性
挑战密码[]:
可选公司名称[]:
使用/etc/openvpn/easy-rsa/openssl-1.0.0.cnf中的配置
检查请求是否符合签名签名确定主题的专有名称如下
countryName:PRINTABLE:' GB'
stateOrProvinceName:PRINTABLE:' London'
localityName:PRINTABLE:' London'
organizationName:PRINTABLE:' Org'
commonName:PRINTABLE:' client1'
name:PRINTABLE:' OrgServer'
emailAddress:IA5STRING:' admin@gamban.com'
证书必须经过认证,直到格林威治标准时间4月21日15:43:47 2026(3650天)签署证书? [Y / N]:Y
1个证书请求中有1个已通过认证,提交? [Y / N - ] Y
使用1个新条目写出数据库
数据库已更新
根@ zohaib-VirtualBox的:在/ etc / openvpn的/易-RSA#
答案 0 :(得分:2)
您可以使用shell_exec并使用结果,例如,使用正则表达式来匹配密钥等的到期日期,即:
$ovpnKey = shell_exec("your command here");
命令的结果将保留在var $ovpnKey
。
<强>更新强>
要自动创建新的 OpenVPN 客户端证书,请使用以下脚本。确保至少编辑以下变量OPENVPN_RSA_DIR
OPENVPN_KEYS
KEY_DOWNLOAD_PATH
#! /bin/bash
# Script to automate creating new OpenVPN clients
# The client cert and key, along with the CA cert is
# zipped up and placed somewhere to download securely
#
# H Cooper - 05/02/11
#
# Usage: new-openvpn-client.sh <common-name>
# Set where we're working from
OPENVPN_RSA_DIR=/etc/openvpn/easy-rsa/2.0
OPENVPN_KEYS=$OPENVPN_RSA_DIR/keys
KEY_DOWNLOAD_PATH=/var/www/secure
# Either read the CN from $1 or prompt for it
if [ -z "$1" ]
then echo -n "Enter new client common name (CN): "
read -e CN
else
CN=$1
fi
# Ensure CN isn't blank
if [ -z "$CN" ]
then echo "You must provide a CN."
exit
fi
# Check the CN doesn't already exist
if [ -f $OPENVPN_KEYS/$CN.crt ]
then echo "Error: certificate with the CN $CN alread exists!"
echo " $OPENVPN_KEYS/$CN.crt"
exit
fi
# Enter the easy-rsa directory and establish the default variables
cd $OPENVPN_RSA_DIR
source ./vars > /dev/null
# Copied from build-key script (to ensure it works!)
export EASY_RSA="${EASY_RSA:-.}"
"$EASY_RSA/pkitool" --batch $CN
# Take the new cert and place it somewhere it can be downloaded securely
zip -q $KEY_DOWNLOAD_PATH/$CN-`date +%d%m%y`.zip keys/$CN.crt keys/$CN.key keys/ca.crt
# Celebrate!
echo ""
echo "#############################################################"
echo "COMPLETE! Download the new certificate here:"
echo "https://domain.com/secure/$CN-`date +%d%m%y`.zip"
echo "#############################################################"
将上述bash脚本保存为new-openvpn-client.sh
并授予其执行权限。
然后使用php shell_exec
生成密钥:
$ovpnKey = shell_exec("sh /full/path/to/new-openvpn-client.sh <common-name>");
来源: