Linux

OpenSSL 轉換 PEM、DER、PKCS#12 憑證格式教學與範例

介紹如何在 Linux 中使用 OpenSSL 指令轉換 PEM、DER 與 PKCS #12 格式的憑證檔案。

SSL 憑證格式

常見的 SSL 憑證的檔案格式大概有以下幾種:

種類 格式 副檔名
Base64 文字 PEM .pem.crt.cer.key
PKCS #7 .p7b.p7c
二進位 DER .cer.der
PKCS #12 .pfx.p12

在這些憑證格式中,PEM 算是比較常見的,若遇到需要換格式的時候,可以使用以下的 OpenSSL 的指令來處理。

PEM 與 DER 格式轉換

以下指令可將 DER 格式的憑證檔案 certificate.der 轉換成 PEM 格式的 certificate.pem

# DER 格式轉 PEM 格式
openssl x509 -inform der -in certificate.der -out certificate.pem

以下指令可將 PEM 格式的憑證檔案 certificate.pem 轉換成 DER 格式的 certificate.der

# PEM 格式轉 DER 格式
openssl x509 -outform der -in certificate.pem -out certificate.der

PEM 與 PKCS #12 格式轉換

以下指令可將 PEM 憑證 certificate.crt 與私鑰 private.key 連同 CA 的憑證 CACert.crt 一起轉為 PKCS #12 格式的 keystore.pfx

# PEM 憑證與私鑰轉 PKCS #12
openssl pkcs12 -export -out keystore.pfx -inkey private.key \
  -in certificate.crt -certfile CACert.crt

以下指令可從 PKCS #12 格式的 keystore.pfx 中轉出 PEM 格式的私鑰與憑證:

# PKCS #12 轉出 PEM 格式的私鑰與憑證
openssl pkcs12 -in keystore.pfx -out keystore.pem -nodes

也可以將 PKCS #12 中的私鑰與憑證個別轉出:

# PKCS #12 轉出 PEM 格式的私鑰
openssl pkcs12 -in keystore.pfx -out private.pem -nodes -nocerts

# PKCS #12 轉出 PEM 格式的憑證
openssl pkcs12 -in keystore.pfx -out certificate.pem -nodes -nokeys

參考資料

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago