要使用 PHP 的 GMSSL 擴展生成證書,請按照以下步驟操作:
sudo apt-get install php-gmsl
使用 OpenSSL 創建私鑰和 CSR:
openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
這將生成一個名為 example.com.key
的私鑰文件和一個名為 example.com.csr
的證書簽名請求文件。
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)等信息,以及證書的密鑰用法和擴展。
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)簽發的證書。