温馨提示×

php gmssl 怎样生成证书

PHP
小樊
85
2024-11-26 03:04:12
栏目: 云计算

要使用 PHP 的 GMSSL 扩展生成证书,请按照以下步骤操作:

  1. 安装 GMSSL 扩展: 确保已经安装了 PHP 的 GMSSL 扩展。如果尚未安装,请根据您的操作系统和 PHP 版本安装相应的扩展。例如,在 Ubuntu 系统上,可以使用以下命令安装:
sudo apt-get install php-gmsl
  1. 准备证书签名请求(CSR): 首先,需要创建一个私钥和一个证书签名请求。私钥用于签署证书,而 CSR 用于向证书颁发机构(CA)申请证书。

使用 OpenSSL 创建私钥和 CSR:

openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

这将生成一个名为 example.com.key 的私钥文件和一个名为 example.com.csr 的证书签名请求文件。

  1. 准备证书模板(X.509): 创建一个名为 example.com.cnf 的配置文件,其中包含证书的相关信息。例如:
[req]
default_bits        = 2048
default_keyfile     = example.com.key
distinguished_name  = dn
req_extensions      = req_ext
x509_extensions     = x509_ext
string_mask         = utf8only

[dn]
C = US
ST = California
L = Mountain View
O = Example Company
OU = IT Department
CN = example.com

[req_ext]
subjectAltName          = @alt_names

[alt_names]
DNS.1   = example.com
DNS.2   = www.example.com

[x509_ext]
subjectKeyIdentifier        = hash
authorityKeyIdentifier  = keyid,issuer

basicConstraints        = CA:FALSE
keyUsage            = digitalSignature, keyEncipherment
subjectAltName          = @alt_names
extendedKeyUsage    = serverAuth

这个配置文件定义了证书的通用名称(CN)、组织名称(O)、组织单位(OU)等信息,以及证书的密钥用法和扩展。

  1. 生成自签名证书: 使用 OpenSSL 和之前创建的 CSR 和配置文件生成自签名证书:
openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -extfile example.com.cnf

这将生成一个名为 example.com.crt 的自签名证书文件。

现在,您已经使用 PHP 的 GMSSL 扩展生成了一个自签名证书。请注意,自签名证书在生产环境中可能会导致浏览器警告。在实际部署中,建议使用权威证书颁发机构(CA)签发的证书。

0