使用 PHP 與 OpenSSL 進行憑證轉換 (.der, .crt, .cer 至 .pem)

更新於 發佈於 閱讀時間約 4 分鐘

使用PHP 搭配 OpenSSL 進行憑證轉換

.der → .pem

=>"openssl x509 -inform DER -in certificate.der -out certificate.pem"

.crt→ .pem

=>"openssl x509 -in certificate.crt -out certificate.pem"

.cer → .pem

=>"openssl x509 -in certificate.cer -out certificate.pem"


使用PHP 進行憑證轉

.CER轉 .PEM

$cerFile = 'certificate.cer';

$pemFile = 'certificate.pem';

// 讀取憑證內容

$certContent = file_get_contents($cerFile);

// 嘗試讀取憑證

$cert = openssl_x509_read($certContent);

if ($cert) {

// 將憑證轉換為 PEM 格式

openssl_x509_export($cert, $pemContent);

file_put_contents($pemFile, $pemContent);

echo "CER 已成功轉換為 PEM\n";

} else {

echo "無法解析 CER 檔案\n";

}

.CRT轉 .PEM

$crtFile = 'certificate.crt';

$pemFile = 'certificate.pem';

// 讀取憑證內容

$certContent = file_get_contents($crtFile);

// 嘗試讀取 X.509 憑證

$cert = openssl_x509_read($certContent);

if ($cert) {

openssl_x509_export($cert, $pemContent);

file_put_contents($pemFile, $pemContent);

echo "CRT 已成功轉換為 PEM\n";

} else {

echo "無法解析 CRT 檔案\n";

}

.DER 轉 .PEM

$derFile = 'certificate.der';

$pemFile = 'certificate.pem';

// 讀取 DER 憑證

$certContent = file_get_contents($derFile);

// 轉換為 PEM 格式(Base64 編碼 + PEM 標頭)

$pemContent = "-----BEGIN CERTIFICATE-----\n" .

chunk_split(base64_encode($certContent), 64, "\n") .

"-----END CERTIFICATE-----\n";

file_put_contents($pemFile, $pemContent);

echo "DER 已成功轉換為 PEM\n";


openssl_x509_read()

openssl_x509_read() 用於解析 X.509 憑證,適用於.cer和 .crt 文件(若為 PEM 格式)。但如果是 DER 格式的憑證,則需要先進行轉換。




分享追劇心得、美食、跟小說創作
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
步驟 找出要定格的片段(按下C,用剃刀工具或是X,進行切割 片段右鍵 -> 偵定格->入點 將片段複製 (按ALT) 往上拉 選上面的圖層 ->效果控制 ->不透明度 ->鋼筆工具 ->進行人物描邊 效果 ->油漆桶 ->上面圖層 ->右鍵 ->嵌套 ->取名 ->將油漆桶拖到上圖層 效
步驟 找出要定格的片段(按下C,用剃刀工具或是X,進行切割 片段右鍵 -> 偵定格->入點 將片段複製 (按ALT) 往上拉 選上面的圖層 ->效果控制 ->不透明度 ->鋼筆工具 ->進行人物描邊 效果 ->油漆桶 ->上面圖層 ->右鍵 ->嵌套 ->取名 ->將油漆桶拖到上圖層 效
你可能也想看
Google News 追蹤
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
戴夫寇爾研究團隊發現PHP在Windows系統上存在遠端程式碼執行漏洞,影響多個PHP版本,包括XAMPP預設安裝環境。漏洞源於字元編碼轉換的問題,允許攻擊者在遠端伺服器上執行任意程式碼。建議使用者立即升級至最新PHP版本,或採取臨時緩解措施。
Thumbnail
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
Thumbnail
PHP(全名為「PHP: Hypertext Preprocessor」)是一門開源的伺服器端程式語言,為動態網頁開發設計。閱讀本文將讓您瞭解PHP的特點、廣泛支援、易學性、資源豐富以及跨平臺性。
PHP(Hypertext Preprocessor)是一種流行的開源腳本語言,特別適用於網頁開發。它具有簡單的語法和易於理解的程式碼結構,並且支持多種數據庫系統和其他技術和框架集成。本文將介紹PHP的主要特點和廣泛應用性。
Thumbnail
最近有專案需求要在 Web 上進行一個掃描條碼辨識的動作,做了一些功課,有 Open Source 方案跟商業解決方案,整理起來分享給大家。
今天就讓我們依照前一天的情境題,來撰寫測試案例函數吧! 這次同樣地,先讓我們規畫擬訂測試案例: 測試案例 使用者註冊: 使用者可送出註冊資料,系統將建立使用者資料,並送出含有專屬驗證連結之驗證信,當此驗證連結被開啟後,將讓使用者轉為已驗證狀態 請求錯誤的驗證連結: 錯誤的驗證連結被開啟後
前一天與大家分享了幾個通用型 Assertion 函數,今天來為大家介紹幾個 HTTP 相關的 Assertion 函數吧! 今天要介紹的各函數,其使用方式和前一天所介紹的略有不同。以下所列各函數,皆是基於 HTTP Response 來做驗證測試,因此大家會看到 $response = $thi
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
戴夫寇爾研究團隊發現PHP在Windows系統上存在遠端程式碼執行漏洞,影響多個PHP版本,包括XAMPP預設安裝環境。漏洞源於字元編碼轉換的問題,允許攻擊者在遠端伺服器上執行任意程式碼。建議使用者立即升級至最新PHP版本,或採取臨時緩解措施。
Thumbnail
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
Thumbnail
PHP(全名為「PHP: Hypertext Preprocessor」)是一門開源的伺服器端程式語言,為動態網頁開發設計。閱讀本文將讓您瞭解PHP的特點、廣泛支援、易學性、資源豐富以及跨平臺性。
PHP(Hypertext Preprocessor)是一種流行的開源腳本語言,特別適用於網頁開發。它具有簡單的語法和易於理解的程式碼結構,並且支持多種數據庫系統和其他技術和框架集成。本文將介紹PHP的主要特點和廣泛應用性。
Thumbnail
最近有專案需求要在 Web 上進行一個掃描條碼辨識的動作,做了一些功課,有 Open Source 方案跟商業解決方案,整理起來分享給大家。
今天就讓我們依照前一天的情境題,來撰寫測試案例函數吧! 這次同樣地,先讓我們規畫擬訂測試案例: 測試案例 使用者註冊: 使用者可送出註冊資料,系統將建立使用者資料,並送出含有專屬驗證連結之驗證信,當此驗證連結被開啟後,將讓使用者轉為已驗證狀態 請求錯誤的驗證連結: 錯誤的驗證連結被開啟後
前一天與大家分享了幾個通用型 Assertion 函數,今天來為大家介紹幾個 HTTP 相關的 Assertion 函數吧! 今天要介紹的各函數,其使用方式和前一天所介紹的略有不同。以下所列各函數,皆是基於 HTTP Response 來做驗證測試,因此大家會看到 $response = $thi