如何使用php openssl_pkey_new創(chuàng)建SSL證書(shū)

PHP
小樊
91
2024-09-05 02:03:06
欄目: 云計(jì)算

要使用PHP的openssl_pkey_new()函數(shù)創(chuàng)建SSL證書(shū),您需要遵循以下步驟:

  1. 安裝PHP OpenSSL擴(kuò)展:確保已在您的服務(wù)器上安裝并啟用了PHP的OpenSSL擴(kuò)展。這通常是默認(rèn)啟用的。您可以通過(guò)運(yùn)行php -m | grep openssl來(lái)檢查它是否已啟用。

  2. 創(chuàng)建一個(gè)PHP腳本文件:創(chuàng)建一個(gè)新的PHP文件(例如:create_ssl_certificate.php),并在其中編寫(xiě)以下代碼:

<?php
// 生成私鑰
$privateKey = openssl_pkey_new(array(
    "private_key_bits" => 2048,      // 密鑰長(zhǎng)度
    "private_key_type" => OPENSSL_KEYTYPE_RSA,   // 密鑰類(lèi)型
));

if (!$privateKey) {
    die("無(wú)法生成私鑰");
}

// 生成公鑰
$publicKey = openssl_pkey_get_details($privateKey);
$publicKey = $publicKey["key"];

// 創(chuàng)建自簽名證書(shū)
$dn = array(
    "countryName" => "CN",
    "stateOrProvinceName" => "Beijing",
    "localityName" => "Beijing",
    "organizationName" => "My Organization",
    "organizationalUnitName" => "IT Department",
    "commonName" => "example.com",
    "emailAddress" => "admin@example.com"
);

$csr = openssl_csr_new($dn, $privateKey);
$sscert = openssl_csr_sign($csr, null, $privateKey, 365);

// 將證書(shū)和私鑰保存到文件
openssl_x509_export_to_file($sscert, "certificate.crt");
file_put_contents("private_key.pem", $privateKey);

echo "SSL證書(shū)和私鑰已創(chuàng)建!";
?>
  1. 運(yùn)行腳本:在命令行中,導(dǎo)航到包含此PHP文件的目錄,然后運(yùn)行以下命令:
php create_ssl_certificate.php
  1. 獲取證書(shū)和私鑰:如果一切正常,您將在同一目錄中看到兩個(gè)新文件:certificate.crt(證書(shū)文件)和private_key.pem(私鑰文件)。

請(qǐng)注意,此示例創(chuàng)建的是自簽名證書(shū),因此在某些情況下可能不被信任。要獲得受信任的證書(shū),您需要向證書(shū)頒發(fā)機(jī)構(gòu)(CA)提交證書(shū)簽名請(qǐng)求(CSR)。

0